关于STL中list容器的一些总结
list简介
list 容器是C++标准模板库(STL)提供的一种链表容器。与数组不同,链表中的元素在内存中不是连续排列的,而是存在于通过链接指针相连的不同的结点中。
list容器的特点有:
- 双向迭代器
- 随机访问被禁用
- 支持在list的任何位置快速插入、删除元素
- 不支持随机访问
list容器的使用
基本操作
创建和初始化
#include<list>
using namespace std;
int main()
{
list<int> mylist;//创建空list
list<int> mylist2(5);//创建包含5个0的list
for(int i=0;i<5;i++)
{
mylist2.push_back(i);//向list的尾部插入元素
}
cout << "mylist2: ";
for(int i : mylist2)
{
cout << i << " ";//遍历list
}
cout << endl;
return 0;
}
输出结果:
mylist2: 0 1 2 3 4
插入元素
插入元素的操作主要有以下方法:
- push_front:在链表头部添加元素
- push_back:在链表尾部添加元素
- insert:在指定位置插入元素
代码示例:
#include<list>
using namespace std;
int main()
{
list<int> mylist = {1,2,3,4,5};
mylist.push_front(0);//在尾部添加元素 0
mylist.push_back(6);//在头部添加元素 6
mylist.insert(++mylist.begin(),10);//在第二个位置后面添加元素 10
for(int i : mylist)
{
cout << i << " ";
}
cout << endl;
return 0;
}
输出结果:
0 1 10 2 3 4 5 6
删除元素
删除元素的操作主要有以下方法:
- pop_front:删除链表头部元素
- pop_back:删除链表尾部元素
- erase:删除指定位置的元素
代码示例:
#include<list>
using namespace std;
int main()
{
list<int> mylist = {1,2,3,4,5};
mylist.pop_front();//删除头部元素
mylist.pop_back();//删除尾部元素
mylist.erase(++mylist.begin());//删除第二个元素
for(int i : mylist)
{
cout << i << " ";
}
cout << endl;
return 0;
}
输出结果:
2 3 4
高级操作
反转链表
reverse函数可以用于反转链表。
代码示例:
#include<list>
using namespace std;
int main()
{
list<int> mylist = {1,2,3,4,5};
mylist.reverse();//反转链表
for(int i : mylist)
{
cout << i << " ";
}
cout << endl;
return 0;
}
输出结果:
5 4 3 2 1
排序链表
sort函数可以用于排序链表。默认情况下,sort函数使用元素类型的小于比较运算符(<
)进行排序。
代码示例:
#include<list>
using namespace std;
int main()
{
list<int> mylist = {5,3,4,2,1};
mylist.sort();//排列链表
for(int i : mylist)
{
cout << i << " ";
}
cout << endl;
return 0;
}
输出结果:
1 2 3 4 5
总结
本文简要地阐述了STL中list容器的使用方法及一些常见操作,包括创建与初始化、插入与删除元素、反转链表和排序链表等。list容器是一种灵活性较高的容器,因此在需要经常插入删除元素的应用场景中,使用list容器可以很好地提升效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于STL中list容器的一些总结 - Python技术站