deque的构造函数
#include<iostream> #include<deque> using namespace std; void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { //容器中的数据不可以修改了 cout << *it << " "; } cout << endl; } void test01() { deque<int> d1; for (int i = 0; i < 10; i++) { d1.push_back(i); } printDeque(d1); //区间赋值 deque<int> d2(d1.begin(), d1.end()); printDeque(d2); //n个elem赋值 deque<int> d3(10, 100); printDeque(d3); //拷贝构造函数 deque<int>d4(d3); printDeque(d4); } int main() { test01(); system("pause"); return 0; }
deque的赋值操作
#include<iostream> #include<deque> using namespace std; void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { //容器中的数据不可以修改了 cout << *it << " "; } cout << endl; } void test01() { deque<int> d1; for (int i = 0; i < 10; i++) { d1.push_back(i); } printDeque(d1); // = 赋值 deque<int> d2; d2 = d1; printDeque(d2); //assign赋值 deque<int> d3; d3.assign(d1.begin(),d1.end()); printDeque(d3); deque<int> d4; d4.assign(10, 100); printDeque(d4); } int main() { test01(); system("pause"); return 0; }
deque的大小操作
#include<iostream> #include<deque> using namespace std; void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { //容器中的数据不可以修改了 cout << *it << " "; } cout << endl; } void test01() { deque<int> d1; for (int i = 0; i < 10; i++) { d1.push_back(i); } printDeque(d1); if (d1.empty()) { cout << "d1为空" << endl; } else { cout << "d1不空" << endl; cout << "d1的大小为: " << d1.size() << endl; //deque容器没有容量的概念 } //重新指定大小 d1.resize(12); printDeque(d1); d1.resize(15, 1); printDeque(d1); d1.resize(5); printDeque(d1); } int main() { test01(); system("pause"); return 0; }
deque的插入和删除
#include<iostream> #include<deque> using namespace std; void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { //容器中的数据不可以修改了 cout << *it << " "; } cout << endl; } void test01() { deque<int> d1; //尾插 d1.push_back(10); d1.push_back(20); //头插 d1.push_front(100); d1.push_front(200); printDeque(d1); //尾删 d1.pop_back();//输出200 100 10 //头删 d1.pop_front(); //输出100 10 printDeque(d1); } void test02() { deque<int> d1; d1.push_back(10); d1.push_back(20); d1.push_front(100); d1.push_front(200);//输出 200 100 10 20 //insert插入 d1.insert(d1.begin(), 1000); printDeque(d1); d1.insert(d1.begin(), 2,10000); printDeque(d1); //按照区间进行插入 deque<int> d2; d2.push_back(1); d2.push_back(2); d2.push_back(3); d1.insert(d1.begin(), d2.begin(), d2.end()); printDeque(d1); //输出 1 2 3 10000 10000 1000 200 100 10 20 } void test03() { deque<int> d1; d1.push_back(10); d1.push_back(20); d1.push_front(100); d1.push_front(200); //删除 deque<int>::iterator it = d1.begin(); it++; d1.erase(it);//输出 200 10 20 printDeque(d1); //按照区间的方式删除 //d1.erase(d1.begin(), d1.end()); //清空 d1.clear();//效果和80行代码实现的效果也一样 printDeque(d1); } int main() { //test01(); //test02(); test03(); system("pause"); return 0; }
deque的数据存取
#include<iostream> #include<deque> using namespace std; void test01() { deque<int> d1; d1.push_back(10); d1.push_back(20); d1.push_back(30); d1.push_front(100); d1.push_front(200); d1.push_front(300); //通过 [] 方式访问元素 for (int i = 0; i < d1.size(); i++) { cout << d1[i] << " "; } cout << endl; //输出 300 200 100 10 20 30 //通过at方式访问元素 for (int i = 0; i < d1.size(); i++) { cout << d1.at(i) << " "; } cout << endl; cout << "第一个元素为: " << d1.front() << endl; cout << "最后一个元素为: " << d1.back() << endl; } int main() { test01(); system("pause"); return 0; }
deque的排序
#include<iostream> #include<deque> #include<algorithm> using namespace std; void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { //容器中的数据不可以修改了 cout << *it << " "; } cout << endl; } void test01() { deque<int> d; d.push_back(10); d.push_back(20); d.push_back(30); d.push_front(100); d.push_front(200); d.push_front(300); //输出 300 200 100 10 20 30 printDeque(d); //排序 使用sort 默认排序规则 从小到大 升序 //对于支持随机访问的迭代器,都可以利用sort算法,都可以对其进行排序 sort(d.begin(), d.end()); cout << "排序后: " << endl; printDeque(d); } int main() { test01(); system("pause"); return 0; }