本文介绍: 但是会出现以上的情况,因为pos指向元素为3的节点,第一次插入是3的前面没有问题,但是第二次插入时pos还是指向元素3,所以插入999还是在元素3的前面插入。返回第一个元素的reverse_iterator,即end位置,返回最后一个元素下一个位置的reverse_iterator,即begin位置。因为第一次删除pos位置的节点,该节点已经不存在了,第二次删除还是使用上一次的pos,所以会报错。list不需要扩容,它的每个节点是独立的一块空间,根据需求来进行新增节点或者删除节点。
list的底层结构是双向循环链表,在任意位置插入和删除效率很高,但是不支持任意位置的随机访问。
下面来介绍一些常用的list接口:
1 构造
1.1 无参构造
1.2 构造的list中包含n个值为val的元素
1.3 用[first, last)区间中的元素构造list
只要是迭代器都可以在其范围内初始化它的内容
1.4 拷贝构造
2 迭代器的使用
2.1 begin + end
2.2 rbegin + rend
3 容量操作
3.1 empty + size
4 获取元素
4.1 front + back
5 插入、删除、修改
5.1 头插-push_front和尾插-push_back
5.2 头删-pop_front和尾删-pop_back
5.3 交换——swap
5.4 清理——clear
5.5 insert-pos位置插入元素
5.6 erase-pos位置删除元素
6 迭代器失效问题
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。