deque容器
- 双端动态数组。
- 与vector的差异:deque插入和删除为常数项时间,不会因为数据量的大小改变操作所耗时间。
- deque没有容量的概念。它有分段连续空间组成,由中控器连接。当前空间不足时,另开辟一段空间,并和原来的拼接在一起,像链表。而vector会在新空间开辟后删除原来的旧空间。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/100462ffc62669ba839ad69fce2d4044.png)
deque构造函数
deque<T> deqT;
deque(beg,end);
deque(const deque &deq);
deque赋值操作
assign(beg,end);
deque& operator=(const deque &deq);
void printDequeInt (deque<int> &d)
{
for (deque<int>::iterator it=d.begin() ;it!=d.end() ;it++)
{
cout<<*it<<" " ;
}
cout<<endl ;
}
void test01()
{
deque<int> d(5,10) ;
printDequeInt(d) ;
deque<int>d1;
d1.assign(5,100) ;
printDequeInt(d1) ;
}
deque<int>d2 ;
d2 = d1;
printDequeInt(d2) ;
deque<int> d3(5,1) ;
deque<int> d4(5,2) ;
printDequeInt(d3) ;
printDequeInt(d4) ;
d3.swap(d4) ;
printDequeInt(d3) ;
printDequeInt(d4) ;
deque. size();
deque. empty() ;
deque. resize(num) ;
deque. resize(num,elem);
deque双端插入和删除操作
push_back(elem) ;
push_front(elem) ;
pop_back();
pop_front();
deque数据存取
at(idx) ;
operator[] ;
front();
back();
d.push_back(10) ;
d.push_back(20) ;
d.push_back(30) ;
d.push_front(40) ;
d.push_front(50) ;
d.push_front(60) ;
printDequeInt(d) ;
d.pop_front();
d.pop_back() ;
printDequeInt(d) ;
if(d. empty())
{
cout<<"d容器为空"<<endl ;
}
else
{
cout<<"d容器非空"<<end1 ;
cout<<"size = "<<d.size()<<endl;
}
cout<<"d[2] = "<<d[2]<<end1;/ /10
cout<<"d.at(2) = "<<d.at(2)<<end; / /10
cout<<"头元索= "<<d.front()<<endL; / /50
cout<<"尾元素= "<<d.back()<<endl; / /20