C++STL模板库序列容器之List容器
2023-09-27 14:21:04 时间
一丶List容器的存储结构
list容器底层是链表结构来维护的.跟vector不一样. vector是数组维护的.拥有连续内存.所以可以使用[] 运算符操作.list底层是链表维护.内存不连续.所以不能使用[]运算符.
且对比vector添加了新的方法.因为底层是链表.所以可以对头尾进行删除或者添加元素.
二丶丶STL中list容器的使用.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <list>
using namespace std;
int main(char *argc, char *argv[]) {
list<int> lst;
lst.push_back(1);
lst.push_back(2);
lst.push_back(4);
lst.push_back(3); //尾部添加元素
lst.push_front(5);//头部添加元素
//迭代list容器
list<int>::iterator it = lst.begin();
lst.sort(less<int>()); //从小到大排序
lst.sort(greater<int>());//从大到小删除
for (it; it != lst.end(); it++)
{
cout << (*it) << endl; //lst不是连续内存,不支持 [] 操作符.
// cout << lst.back() << " " << lst.front() << endl;
}
lst.erase(it); //删除指定元素.
lst.pop_back(); //从尾部删除元素
lst.pop_front();//从头部删除元素
it = find(lst.begin(), lst.end(), 10);//查找.返回找到的it位置.
lst.insert(it, 11); //从指定it位置插入.
cout << "--------------------------" << endl;
getchar();
system("pause");
}
总结: 比vector容器多了一个头操作.不支持[]操作符. 有自己的内部排序.
相关文章
- c++之模板【进阶版】
- 【Matlab开发】MATLAB编译C/C++代码
- C++标准模板库STL算法与自适应容器(栈和队列)
- 【C++】继承/多态/文件
- C++-容器-string:查找子字符串在原字符串中的下标【int idx = a.find(b)】
- C++STL模板库适配器之queue队列
- C++STL模板库关联容器之set/multiset
- c++ 书籍
- C++初阶-模板进阶
- C/C++标准库和标准模板库总结
- 易学C++(第2版)
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- C++标准库和标准模板库
- C++学习笔记_11 模板编程 2021-04-29
- C++函数模板template(模板函数)
- 基于数组的循环队列(C++模板实现)
- 《挑战30天C++入门极限》图例实解:C++中类的继承特性
- C++模板编程
- VC++ ADO编程入门简介
- C++11 静态断言 static_assert
- C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
- c++模板类
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
- C++纯虚函数 | 接口 | 模板特例化 | 智能指针的意义
- 28.C++- 单例类模板(详解)
- 17.C++-string字符串类(详解)
- 【课堂笔记】C++程序设计- 第一章-绪论
- c++模板类