前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ STL之deque的基本操作

C++ STL之deque的基本操作

作者头像
用户1215536
发布2018-02-05 14:38:36
8390
发布2018-02-05 14:38:36
举报

前两篇博文中已经介绍了vector和list的两种容器,我们发现他们各有各的优缺点,vector在内存中连续存储,支持随机访问,但是查找和删除的效率比较低,而list在内存中是链式存储的查找和删除的效率很高,但是不支持随机存储,那么deque就综合和两者的优点,将若干连续的内存通过某种手段拼接在一起,而看起来像是在同一段内存中,通过对[]运算符的重载可以使其像数组一样访问数据,而插入和删除操作效率只受所在内存段数据的影响。

这里有一篇深入理解deque实现细节的博文:http://www.programlife.net/stl-deque.html

代码语言:javascript
复制
 1 #include<iostream>
 2 #include<deque>
 3 using namespace std;
 4 void print(deque<int> dq)
 5 {
 6     deque<int>::iterator it=dq.begin();
 7     for(;it!=dq.end();it++)
 8     {
 9         cout<<*it<<" ";
10     }
11     cout<<endl;
12 }
13 int main()
14 {
15     //初始化
16     int num[10]={0,1,2,3,4,5,6,7,8,9};
17     deque<int> dq(num,num+10);
18     print(dq);
19     
20     //增加元素
21     //insert
22     deque<int>pp(num,num+3);
23     print(pp);
24     deque<int>::iterator it1=pp.begin();
25     deque<int>::iterator it2=pp.end();
26     dq.insert(dq.end(),it1,it2);
27     print(dq);
28     //push
29     dq.push_back(10);
30     dq.push_front(-1);
31     print(dq);
32 
33     //删除deque中只有erase,没有remove
34     //erase
35     dq.erase(dq.begin()+5);
36     print(dq);
37     
38     //[]的随机访问
39     dq[1]=100;
40     print(dq);
41 
42     return 0;
43 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-04-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档