Vector容器提供了对元素的快速随机访问,但是付出的代价是在其任意位置插入和删除元素,比在容器尾部插入和删除的开销更大。与vector相比,list容器可以在任何位置快速插入和删除,但是付出的代价是元素的随机访问开销更大。
采用list的结构实现容器的基本操作与vector容器类似。list 容器与vector 容器有很多相同的接口,像 push_back()、insert()、end()、erase()等。但是list容器不支持随机访问,所以没有下标操作符。
list 相对 vector 的新增加的部分接口:
(1)push_front
在列表的第一个元素前插入新元素
void push_front(const value_type& __x) { this->_M_insert(begin(), __x); }
(2)pop_front
删除列表的第一个元素
void pop_front() { this->_M_erase(begin()); }
(3)remove
删除所有值为 _value的元素
void remove(const _Tp& __value);
(4)unique
删除所有相邻的相同元素,只保留一个
void unique();
(5)merge
与有序列表 _x 求并集,构成新的有序列表,原列表应为有序列表
void merge(list& __x);
(6)reverse
将所有的元素次序倒置
void reverse() { this->_M_impl._M_node.reverse(); }
(7)merge
将所有元素按照从小到大的次序排列
void sort();
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-11 23:35:20