C++STL容器----List
发布日期:2021-05-07 22:56:05 浏览次数:12 分类:精选文章

本文共 1587 字,大约阅读时间需要 5 分钟。

概念

List底层就是一个双向带头循环链表,与vector相比,List的插入与删除更加方便,只需要O(1)的时间复杂度,但是缺点也很明显,就是不能像vector一样支持随机访问。所以在使用时要根据实际情况进行选择。

创建一个List

使用List要包含头文件 <List>

List共有4种构造函数。

#include 
int main(){ List
l1;//无参构造,存储类型为int型 List
l2(n, val);//初始化n个val值存放在l2中 int arr[4] = {0,1,2,3}; List
l3(arr, arr + 4);//迭代器构造 List
l4(l3)//拷贝构造 return 0;}

List访问方式

List有有两种访问方式:

第一种,范围for循环

#include 
#include
using namespace std;int main(){ int arr[4] = {0,1,2,3}; List
l3(arr, arr + 4);//迭代器构造 for(int num : l3){ cout << num << " "; } cout << endl; return 0;}

第二种,迭代器访问

#include 
#include
using namespace std;int main(){ int arr[4] = {0,1,2,3}; List
l3(arr, arr + 4);//迭代器构造 List
::iterator it = l3.begin(); while(it != l3.end()){ cout << *it << " "; it++; } cout << endl; return 0;}

List常见接口

迭代器接口:

#include 
int main(){ List
l1;//无参构造 //l1.begin();返回l1的第一个元素的迭代器 //l1.end();返回最后一个元素的next域 //l1.rbegin();返回最后一个元素的迭代器 //l1.rend();返回第一个元素的prev域 return 0;}

空间相关接口:

#include 
int main(){ List
l1;//无参构造 //l1.empty();//判断l1是否为空 //l1.size();//返回l1有效元素个数 return 0;}

增删查改接口:

#include 
int main(){ List
l1;//无参构造 //l1.push_back(val);尾插val数据 //l1.push_front(val);头插val数据 //l1.pop_back();尾删一个数据 //l1.pos_front();头删一个数据 //l1.insert(pos, val);在pos位置前面插入val数据 //l1.erase(pos);删除pos位置数据 List
l2(n, val);//初始化n个val值存放在l2中 //l1.swap(l2);//交换l1与l2的内容 //l1.clear();清除l1所有有效数据 return 0;}
上一篇:STL容器:双端队列deque与优先级队列priority_queue
下一篇:vector介绍与使用

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月11日 06时22分52秒