-
定义
1、list 是顺序容器,是一个双向链表,无序;
2、不支持[ ] 操作符和vector.at() ;
3、list 的缺点是无法通过位置来直接访问序列中的元素; -
用法
1、创建
list<string> test;
2、初始化
list<int> lst1; //创建空list list<int> lst2(5); //创建含有5个元素的list,每个元素值为0 list<int>lst3(3,2); //创建含有3个元素的list,每个元素值为2 list<int>lst4(lst2); //使用lst2初始化lst4 list<int>lst5(lst2.begin(),lst2.end()); //同lst4
3、新增
test.insert() //插入一个元素到list中 iterator insert( iterator pos, const value_type value); void insert( iterator pos, int n, const value_type value); void insert( iterator pos, InputIterator first, InputIterator last); test.push_back(value) //在list的末尾添加一个元素value test.push_front(value) //在list的头部添加一个元素value
4、删除
test.clear() //删除所有元素 test.erase(iter) //删除一个元素,参数是迭代器iter test.remove(const T& x) //从list删除和X相同的元素
5、迭代器
test.begin() //返回指向第一个元素的迭代器 test.end() //返回末尾的迭代器 test.rbegin() //它返回一个反向迭代器,该迭代器指向列表的最后一个元素 test.rend() //它返回一个反向迭代器,该迭代器指向列表开头之前的位置 for (auto it = lis.rbegin(); it != lis.rend(); ++it) cout << *it << " ";
6、查询
test.back() //返回最后一个元素 test.front() //返回第一个元素 test.pop_back() //删除最后一个元素 test.pop_front() //删除第一个元素
7、判空和大小
test.empty() //如果list是空的则返回true test.size() //返回list中的元素个数
8、翻转
list<int> test; test.reverse() //把list的元素倒转
9、合并
test.merge() //合并两个list list2.merge(list1);
10、排序、删除重复元素
test.sort() //给list排序 test.unique() //删除list中重复的元素
11、 其他常见的用法
test.assign() //给list赋值 test.max_size() //返回list能容纳的最大元素数量 test.remove_if() //按指定条件删除元素 test.resize() //改变list的大小 test.splice() //合并两个list test.swap() //交换两个list
C++ list
最新推荐文章于 2024-07-04 11:10:43 发布