deque容器 Posted on 2020-04-22 | In STL Words count in article: 888 | Reading time ≈ 4 deque容器 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135//// Created by Jason on 2020/3/29.///* * deque 容器 * 3331 deque构造函数 deque<T>deqT:/默认构造形式 deque (beg,end);//构造函数将[beg,end)区阃中的元素拷贝綸本身● deque (n, elem);//构造函数将n个elem拷贝给本身。 deque(const deque&deq);//拷贝构造函数。φ3332 deque赋值操作 assign(beg,end);//将[beg,end)区阃中的数据拷贝赋值绐本身。ψ assign(n,elem);/将n个elem拷贝赋值给本身 deque& operator=( const deque&deq):/重载等号操作符 swap(deq)://将deq与本身的元素互换3333 deque大小操作 deque.size();/返回客器中元素的个数 deque.empty();//判断容器是否 deque.resize(num)://重新指定容器的长度为num;若容器变长,则以默认值填充新位置。 如果容器变短,则末尾超出容器长度的元素被刪除。 resize(num,elem)://重新指定客器的长度为mm若容器变长,则以elem值填充新位置。 如器变短,则末尾超出容器长度的元素被刪除3334 push_back(elem)://在寳器尾部添加一个数据 push_front(elem)://在容器头部插入一个数据 pop_back()://刪除答器最后一个数据 pop_ front()://删除容器第一个数据33.35 deque数据存取 at(idx)://回索引id所指的数据,如果idk越界,抛出 out of range4 operator []:/回索引ik所指的数据,如果idx越界,不抛出异常,直接出错。 front();/返回第一个数据。 back()://返回最后一个数据3336 deque插入操作 insert(pos,elem)://在pos位置插入一个elem元素的拷贝,返回新数据的位置。4 insert(pos, n, elem)://在ps位置插入n个elem数据,无返回值。 insert ( pos,beg,end):/在pos位置插入[beg,end)区间的数据,无返回值。337 deque删除操作 clear();/移除答器的所有数据 erase(beg,end);//刪除[beg,end)区间的数据,返回下一个数据的位置。 erase(pos);//(刪除pos位置的数据,返回下一个数据的位置。 * */#include<bits/stdc++.h>using namespace std;void printDeque(const deque<int>&d){ //iterator 普通迭代器 //reverse_iterator 反转迭代器 //const_iterator 只读迭代器 for(_Deque_iterator<int, const int &, const int *> it = d.begin(); it != d.end(); it++) {// *it = 10000;//为了防止修改本体,在传入参数时加上const cout<<*it<<" " ; }}void test01(){ deque<int>d; d.push_back(10); d.push_back(20); d.push_back(30); d.push_back(40); printDeque(d); deque<int>d2(10,10); d.swap(d2); printDeque(d);//交换两个deque的值 if(d.empty()) { cout<<"D IS EMPTY"<<endl; }else cout<<"D IS NOT EMPTY"<<endl;}void test02(){ deque<int>d; d.push_back(10); d.push_back(20); d.push_back(30); d.push_back(40); d.push_front(100); d.push_front(200); d.push_front(300); d.push_front(400); printDeque(d);//400,300,200,100,10,20,30,40 d.pop_back(); d.pop_front(); cout<<endl; printDeque(d);// 300,200,100,10,20,30 cout<<"THE FIRST ELEM is "<<d.front()<<endl; cout<<"THE LAST ELEM is "<<d.back()<<endl; d.insert(++d.begin(),10000); printDeque(d); cout<<endl; //删除 d.erase(++d.begin()); printDeque(d); cout<<endl; d.erase(++d.begin(),--d.end());//删除区间:留下头尾,中间删掉 printDeque(d); cout<<endl; d.clear();}/**************************************************************///利用sort排序bool BIGTOSMALL(int v1,int v2){ return v1>v2;}void test03(){ deque<int>d; d.push_back(10); d.push_back(20); d.push_back(30); d.push_back(40); d.push_front(100); d.push_front(200); d.push_front(300); d.push_front(400); //默认排序规则从小到大 sort(d.begin(),d.end()); printDeque(d); cout<<endl; //从大到小 sort(d.begin(),d.end(),BIGTOSMALL ); printDeque(d);}int main(){// test01();// test02(); test03(); system("pause"); return 0;} -------------本文结束,感谢您的阅读------------- Post author: Jason Post link: https://jasonxqh.github.io/2020/04/22/deque%E5%AE%B9%E5%99%A8/ Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.