zl程序教程

您现在的位置是:首页 >  其他

当前栏目

STL---List

2023-03-14 10:17:03 时间

表(List容器类)

 List(#include<list>)又叫链表,是一种双线性列表,只能顺序访问(从前向后或者从后向前),它不支持随机访问。要访问表中某个下标处的项需要从表头或表尾处(接近该下标的一端)开始循环。而且缺少下标预算符:operator[]。同时,list仍然包涵了erase(),begin(),end(),insert(),push_back(),push_front()这些基本函数,下面我们来演示一下list的其他函数功能。merge():合并两个排序列表;splice():拼接两个列表;sort():列表的排序。


#include <iostream>
#include <string>
#include <list>
using namespace std;
void PrintIt(list<string> n)
{
for(list<string>::iterator iter=n.begin(); iter!=n.end(); ++iter)
cout<<*iter<<" ";
cout<<endl;
}
int main()
{
list<string> listn1,listn2;
listn1.push_back("qwe");
listn1.push_back("asd");
listn1.push_back("akl");
listn1.push_back("lp");

PrintIt(listn1);
listn2.push_back("ouq");
listn2.push_back("uwi");
PrintIt(listn2);
listn1.sort();//默认是升序排序
PrintIt(listn1);
listn1.sort(greater<string>()); //这是降序排序
listn2.sort(greater<string>());
PrintIt(listn1);
PrintIt(listn2);
listn1.merge(listn2,greater<string>()); //注意如果要降序merge需要先把vec1和vec2降序排序
PrintIt(listn1);
// listn1.merge(listn2,greater<string>());
// PrintIt(listn1);
return 0;
}