list的实现
list是 每个节点包含前继节点,后继节点,数据域三部分的双向循环链表。和普通链表性质一样,不提供随机访问,访问时间复杂度为0(n),适合插入和删除。
头文件#include<list>
list包含的函数
1.声明list
- list list1; // 声明一个空的list1
- list list3 (list2.begin(), list2.end()); // 用list2的迭代器内容声明list3
- list list4 (list3); // 声明list4为list3的一个副本
- list1.~list(); // 注销list
2.访问元素
list.front(); //返回第一个元素的值
list.back(); //返回最后一个元素的值
list.begin(); //返回第一个元素的迭代器
list.end(); //返回最后一个元素的迭代器
遍历
1
2
3
4
5
6list<int> a;
list<int>::iterator iter = a.begin();
//或者 auto iter = a.begin();
while(iter!=a.end()){
cout<< *iter++ <<endl;
}
3.添加、删除元素
- list.pop_front(); //删除第一个元素
- list.pop_back(); //删除最后一个元素
- list.clear(); //清空list
- list.insert(iter, t); //在iter之前插入元素t
- list.erase(iter, t); //删除iter处的元素
如何控制iter位置:
1 | auto iter = a.begin(); |
4.排序
- list.sort(); //默认升序排序
- list.reverse(); //将list元素反转