deque双端队列容器
Deque与Vector很相似,不及可以在尾部插入和删除元素,还可以在头部插入和删除,时间复杂度为O(1),考虑到元素的内存分配策略和操作性能时,Deque比Vector有优势。
由于使用了Map管理和以块为单位进行分配,所以不易实现Capacity和Reverse函数,而且也不需要这种函数。
#include<iostream>
#include<deque>
#include<cstdio>
using namespace std;
int main()
{
deque<string>d;
d.push_back("1a");
d.push_back("");
d.push_back("");
d.push_front("front"); //高效的头部插入元素
//d.pop_front(); //删除首元素
//d.pop_back(); //删除尾元素
//d.erase(d.begin() + 1); //删除指定位置元素
//d.clear(); //删除所有元素
d.insert(d.end() - , "insert"); //指定位置插入
for(int i = ; i < d.size(); i++) //数组方式访问
cout<<d[i]<<" ";
cout<<endl;
deque<string>::iterator i; //迭代器访问
for(i = d.begin(); i != d.end(); i++)
cout<<*i<<" ";
cout<<endl;
swap(d[], d[]); //两元素交换,可交换两个Queue的所有元素
deque<string>::reverse_iterator pi; //反向遍历
for(pi = d.rbegin(); pi != d.rend(); pi++)
cout<<*pi<<" ";
cout<<endl;
cout<<"Deque是否有元素"<<d.empty()<<endl;
cout<<"Deque元素个数为"<<d.size()<<endl;
cout<<"Deque的首元素为"<<d.front()<<endl;
cout<<"Deque的尾元素为"<<d.back()<<endl;
cout<<"Deque的最大容量为"<<d.max_size()<<endl;
getchar();
return ;
}运行结果:
相关推荐
算法改变人生 2020-06-03
petal0 2020-03-23
alicelmx 2020-01-12
CoderBoy 2019-12-09
elizabethxxy 2018-12-25