版权声明:请注明转发出处 https://blog.csdn.net/mafucun1988/article/details/89597383
STL(standard template library)是一个具有工业强度的高效C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。
常见的容器主要有 vector,string,deque,pari,set,multiset,map,multimap 8种。
本文介绍:
- 双向数组 deque
- 初始化
- 赋值操作
- 大小操作
- 插入和删除
//初始化
deque<int> d1; //默认构造函数
deque<int> d2(10,5); //带参数构造函数
deque<int> d3(d2.begin(),d2.end());
deque<int> d4(d3); //拷贝构造
//赋值操作
deque<int> d1(10, 3);
deque<int> d;
d.assign(10,5); 赋值
d.assign(d1.begin(),d1.end());
d = d1; //重载= 赋值
//大小操作
deque<int> d1(10, 3);
int size = d1.size();
bool isEmpty = d1.empty();
d1.resize(15);
//插入和删除
deque<int> d;
d.push_back(10);
d.push_back(20);
d.push_front(30);
d.push_front(40);
//第一种遍历方式
for (int i = 0; i < d.size();i++){
cout << d[i] << " ";
}
//第二种遍历方式
for (int i = 0; i < d.size(); i++){
cout << d.at(i) << " ";
}
//第三种方式
for (deque<int>::iterator it = d.begin(); it != d.end(); it++){
cout << *it << " ";
}
//尾删除
while (d.size() > 0){
cout << d.back() << "被删除!" << endl;
d.pop_back();
}
//头删除
while (!d.empty()){
cout << d.front() << "被删除!" << endl;
d.pop_front();
}
deque<int> d;
d.insert(d.begin(),100); //头插法
d.insert(d.end(), 200); //尾差法