1. list初始化:
(1)list<int> t; //没有任何元素
(2)list<int> t(10); //创建有10个元素的链表
(3)list<int> t(10,3); //创建有10个元素的链表,并且每个元素为3
2. 对链表进行插入操作:
(1)前插法:在链表头部插入新元素,链表自动扩张,形式:
t.push_front(8);
(2)尾插法:在链表尾部插入新元素,链表自动扩张,形式:
t.push_back(9);
(3)中间插入:用insert()函数,参数是要插入位置的迭代器,例如:
it=t.begin();
It++; //注意链表的迭代器只能进行++或--操作,而不能进行+n
t.insert(it,20); //操作
3. 链表的遍历:
(1) 反向遍历:形式:
list<int>::reverse_iterator rit;
for(rit=t.rbegin();rit!=t.rend();rit++)
(2) 正向遍历:形似:
list<int>:iterator it;
for(it=t.begin();it!=t.end();it++)
4.删除元素的方法
(1)remove()方法删除一个元素,值相同的元素都会被删除,参数为元素的值,而不是迭代器的位置,例如:t.remove(8);
(2)使用pop_front()方法删除链表首元素,例如: t.pop_front();
(3)使用pop_back()方法删除链表尾元素,例如:t.pop_back();
(4)使用erase()方法删除迭代器位置上的元素,例如:
it=t.begin();
it++; //注意链表的迭代器只能进行++或--操作,而不能进行+n
it++; //操作,但是for(it=t.begin();it!=t.end();it++)这个不影响
t.erase(it);
(5) clear(),清空链表,例如:t.clear();
(6) size(),求元素的个数,例如:cout<<t.size() <<endl;
(7) find(),在链表中查找元素,头文件为#include<algorithm>若找到,则返回该元素,迭代器的位置,若找不到,则返回end()迭代器的位置。查找的形式为:
list<int>::iterator it;
it=find(t.begin(),t.end(),8); //这点和其他的不同,list的要有查找区间的
(8) sort()方法对链表进行排序,默认的是升序排列,形式:t.sort();
(9) unique()方法可以删除连续重复的元素,注意是连续重复的元素,
例如是1 2 3 4 1 则不可删除1。
本文详细介绍C++标准库中的链表(list)容器的基本操作,包括初始化、插入、遍历、删除等方法,并提供示例代码帮助理解。
363

被折叠的 条评论
为什么被折叠?



