版权声明:请注明转发出处 https://blog.csdn.net/mafucun1988/article/details/89630978
STL(standard template library)是一个具有工业强度的高效C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。
常见的容器主要有 vector,string,deque,pari,set,multiset,map,multimap, list 9种。
本文介绍:
- 列表list
- listf容器初始化
- list容器插入删除
- list大小和赋值操作
- list容器排序
//listf容器初始化
list<int> mylist; //默认构造
list<int> mylist2(10, 5); //带参数的构造函数
list<int> mylist3(mylist2.begin(), mylist2.end()); //带参数的构造函数
list<int> mylist4(mylist3); //拷贝构造
//list容器插入删除
list<int> mylist;
mylist.push_back(10); //尾差法
mylist.push_back(20);
mylist.push_front(30); //头插法
mylist.push_front(40);
mylist.insert(mylist.begin(),50);
mylist.push_front(40);
mylist.remove(40);
mylist.pop_back();
mylist.pop_front();
mylist.erase(mylist.begin());
mylist.erase(mylist.begin(), mylist.end());
mylist.clear()
//list大小和赋值操作
list<int> mylist;
cout << "size:" << mylist.size() << endl;
for (int i = 0; i < 10; i++){
mylist.push_back(i);
}
cout << "size:" << mylist.size() << endl;
if (mylist.empty()){
cout << "空!" << endl;
}
else{
cout << "不空!" << endl;
}
//赋值
list<int> mylist2;
mylist2.assign(mylist.begin(), mylist.end());
mylist2.assign(5,10);
list<int> mylist3;
mylist3 = mylist2; //operatror= 赋值
mylist.swap(mylist3);
cout << mylist3.front() << endl;
cout << mylist3.back() << endl;
//reverse 反转容器的元素
mylist3.reverse();
print(mylist3);
//list容器排序
bool mycompare(int v1,int v2){
return v1 > v2;
}
list<int> mylist;
mylist.push_back(2);
mylist.push_back(8);
mylist.push_back(5);
mylist.push_back(9);
mylist.sort(); //默认从小到大
mylist.sort(mycompare);