deque容器

1.基本概念

双端数组,可以对头端进行插入删除操作
deque vector 区别:
vector 对于头部的插入删除效率低,数据量越大,效率越低
deque 相对而言,对头部的插入删除速度回比 vector
vector 访问元素时的速度会比 deque , 这和两者内部实现有关

 

deque 内部工作原理 :
deque 内部有个 中控器 ,维护每段缓冲区中的内容,缓冲区中存放真实数据
中控器维护的是每个缓冲区的地址,使得使用 deque 时像一片连续的内存空间

 

2.构造函数

deque<T> deqT;         //默认构造形式
deque < int > d1 ;
deque(beg, end);         //构造函数将[beg, end) 区间中的元素拷贝给本身。
deque < int > d2 ( d1 . begin (), d1 . end ());
deque(n, elem) ;         //构造函数将 n elem 拷贝给本身。
deque < int > d3 ( 10 , 100 );
deque(const deque &deq) ;         //拷贝构造函数
deque < int > d4 = d3 ;

 

3.赋值操作 

deque& operator=(const deque &deq) ;         //重载等号操作符
deque < int > d1 ;
deque < int > d2 ;
d2 = d1 ;
assign(beg, end) ;         //将 [beg, end) 区间中的数据拷贝赋值给本身。
d3 . assign ( d1 . begin (), d1 . end ());
assign(n, elem);         // n elem 拷贝赋值给本身。
d4 . assign ( 10 , 100 );

 

4.大小操作  

deque.empty();         // 判断容器是否为空
d1 . empty ();        //1为空,0为非空
deque.size();         // 返回容器中元素的个数
d1 . size ()
deque.resize(num);        // 重新指定容器的长度为 num, 若容器变长,则以默认值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除。
deque.resize(num, elem);         // 重新指定容器的长度为 num, 若容器变长,则以 elem 值填充新位置。
//如果容器变长,则末尾超出容器长度的元素自动赋0。

 

 

5.插入和删除  

push_back(elem) ;         //在容器尾部添加一个数据
d . push_back ( 10 );
push_front(elem) ;         //在容器头部插入一个数据
d . push_front ( 100 );
pop_back();         // 删除容器最后一个数据
pop_front() ;         //删除容器第一个数据
insert(pos,elem);         // pos 位置插入一个 elem 元素的拷贝,返回新数据的位置。
d . insert ( d . begin (), 1000 );         //在开始位置插入1000
insert(pos,n,elem);         // pos 位置插入 n elem 数据,无返回值。
d . insert ( d . begin (), 2 , 10000 );         //在开始位置插入2个1000
insert(pos,beg,end);         // pos 位置插入 [beg,end) 区间的数据,无返回值。
d . insert ( d . begin (), d2 . begin (), d2 . end ());         //在开始位置插入d2的所有元素
clear();         // 清空容器的所有数据
erase(beg,end);         // 删除 [beg,end) 区间的数据,返回下一个数据的位置。
erase(pos);         // 删除 pos 位置的数据,返回下一个数据的位置

 

 

6.数据存取 

at(int idx) ;         //返回索引 idx 所指的数据
operator[] ;         //返回索引 idx 所指的数据
front() ;         //返回容器中第一个数据元素
back() ;         //返回容器中最后一个数据元素
  • 35
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值