有求必应

导航

C++STL list

list双向链表

高效进行插入删除数据

不可以随机存取元素,所以不支持at()和[]操作符。it可以++  --,不能it+5

节点序号从0开始

list<int> l;

l.push_back(1);//尾插法

it++;

it++;

l.inserrt(it,100);//在2号位置插入元素,原来的2号位置往后移

删除

list.clear();//删除所有元素

list.erase(beg,end);//删除区间[beg,end)内的数据(左闭右开区间),返回下一个数据的位置,

list.erase(beg,beg+3);//删除的是0、1、2三个元素

list.erase(pos);//删除pos位置的数据,返回下一个数据的位置

list.remove(elem);//删除容器中所有与elem值匹配的元素

 

 

结论

1.链表的节点序号是从0开始的,在2号位置插入元素,是让原来的2号变成3号,原来的3号变成4号

2.erase删除区间元素是左闭右开区间,list.erase(beg,beg+3);//删除的是0、1、2三个元素

 

posted on 2018-09-13 09:08  名侦探江户川  阅读(114)  评论(0编辑  收藏  举报