- 浏览: 17572 次
文章分类
最新评论
http://blog.csdn.net/ianleelj/article/details/3939354 原文出处。
1 vector
向量 相当于一个数组
在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存储。
优点:(1) 不指定一块内存大小的数组的连续存储,即可以像数组一样操作,但可以对此数组
进行动态操作。通常体现在push_back() pop_back()
(2) 随机访问方便,即支持[ ]操作符和vector.at()
(3) 节省空间。
缺点:(1) 在内部进行插入删除操作效率低。
(2) 只能在vector的最后进行push和pop,不能在vector的头进行push和pop。
(3) 当动态添加的数据超过vector默认分配的大小时要进行整体的重新分配、拷贝与释
放
2 list
双向链表
每一个结点都包括一个信息快Info、一个前驱指针Pre、一个后驱指针Post。可以不分配必须的内存大小方便的进行添加和删除操作。使用的是非连续的内存空间进行存储。
优点:(1) 不使用连续内存完成动态操作。
(2) 在内部方便的进行插入和删除操作
(3) 可在两端进行push、pop
缺点:(1) 不能进行内部的随机访问,即不支持[ ]操作符和vector.at()
(2) 相对于verctor占用内存多
3 deque
双端队列 double-end queue
deque是在功能上合并了vector和list。
优点:(1) 随机访问方便,即支持[ ]操作符和vector.at()
(2) 在内部方便的进行插入和删除操作
(3) 可在两端进行push、pop
缺点:(1) 占用内存多
使用区别:
1 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector
2 如果你需要大量的插入和删除,而不关心随即存取,则应使用list
3 如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque
在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存储。
优点:(1) 不指定一块内存大小的数组的连续存储,即可以像数组一样操作,但可以对此数组
进行动态操作。通常体现在push_back() pop_back()
(2) 随机访问方便,即支持[ ]操作符和vector.at()
(3) 节省空间。
缺点:(1) 在内部进行插入删除操作效率低。
(2) 只能在vector的最后进行push和pop,不能在vector的头进行push和pop。
(3) 当动态添加的数据超过vector默认分配的大小时要进行整体的重新分配、拷贝与释
放
2 list
双向链表
每一个结点都包括一个信息快Info、一个前驱指针Pre、一个后驱指针Post。可以不分配必须的内存大小方便的进行添加和删除操作。使用的是非连续的内存空间进行存储。
优点:(1) 不使用连续内存完成动态操作。
(2) 在内部方便的进行插入和删除操作
(3) 可在两端进行push、pop
缺点:(1) 不能进行内部的随机访问,即不支持[ ]操作符和vector.at()
(2) 相对于verctor占用内存多
3 deque
双端队列 double-end queue
deque是在功能上合并了vector和list。
优点:(1) 随机访问方便,即支持[ ]操作符和vector.at()
(2) 在内部方便的进行插入和删除操作
(3) 可在两端进行push、pop
缺点:(1) 占用内存多
使用区别:
1 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector
2 如果你需要大量的插入和删除,而不关心随即存取,则应使用list
3 如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque
发表评论
-
sizeof()
2013-01-09 09:21 649在写程序的时候遇到了如何求字符串占多少长度的内存空间问题。先看 ... -
c/c++语言好坏pk的两篇文章
2012-12-21 22:30 0http://simpleprogrammer.com/201 ... -
hash算法常备链接
2012-12-21 16:13 576在这里总结几个常用的hash函数出来,留备后续用到时候方 ... -
在写哈弗曼算法的时候遇到的一篇好博客
2012-12-17 21:27 0在自己编写哈弗曼算法的时候,遇到了这篇文章。意外的发现,哈弗曼 ... -
strcpy()/memcpy()
2013-01-04 17:08 836陆陆续续总结几个常用函数的原型出来,为以后再看到时查阅的方便。 ... -
初写c++程序
2012-12-08 20:33 0几乎是第一次完整的写一个c++的程序,真所谓不写不知道,一写吓 ... -
汉诺塔问题
2012-11-20 22:46 698原文出处:http://zh.wikipedia.org/wi ... -
迷宫求解算法
2012-11-20 21:05 913原文出处: http://blog.csdn.net/ ... -
双端队列deque (非原创)
2012-11-16 21:44 710http://hi.baidu.com/xuehuo_0411 ... -
头文件的重复包含
2012-10-19 10:48 584#ifndef XXXX_H #define XXXX_H ... -
malloc函数/强制类型转换/单链表案例/
2012-10-11 19:59 9581.malloc()函数的函数原型如下: void *ma ... -
assert 断言
2012-09-17 20:22 590assert宏的原型定义在<assert.h>中, ... -
C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组(2)
2012-07-04 21:14 870//读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换 ... -
C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组(1)
2012-07-04 20:33 1238fstream提供了三个类,用来实现c++对文件的操作。(文件 ...
相关推荐
STL中vector、list、deque和map的区别
vector和deque使用方法
presentation about vector and deque
案例-评委打分 ...遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中 sort算法对deque容器中分数排序,去除最高和最低分 deque容器遍历一遍,累加总分 获取平均分
自己动手实现vector,deque,包含各种测试用例,面向对象程序设计要求写的
壬寅朔月的背包和指针-KHIN的讲义(指针,vector,deque部分)
非常实用的STL容器讲解学习,内容全,讲解详细 包括Vector、Vector、String、Deque、sort、set、map,绝对有用!!
list 和 deque郭 炜 刘家瑛北京大学程序设计实习双向链表 #include <list>在任何位置插入/删除都是常数时间不支持根据下标随机存取元素具有
STL的容器deque的详细使用方法和文档 6.0代码
STL中的deque模板包括迭代器等接口
PTA 6-3 Deque for DS lesson
自定义deque类,复杂度sqrt(n)
容器的各种用法,包括list,deque,vector的用法
SGI STL deque相关代码
deque dll
在大家还没有了解vector,list,deque的知识之前,我先给大家介绍下stl,本文重点给大家介绍vector和list的区别及使用,感兴趣的的朋友一起看看吧
Vector、Deque、List、Set等等,快速学习STL实例 ,迄今为止较好的实例,包括类、结构等作为stl元素
C语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 DEQUEC语言头文件 ...
本文将讨论在一些情况下使用deque> 比vector更好。读完这篇文章后读者应该能够理解在容量增长的过程中deque 与vector在内存分配和性能的不同表现。由于deque> 和vector的用法很相似,读者可以参考vector 文档中介绍...
deque 是python提供的一个数据结构,线程安全,功能比list强大 代码如下 from collections import deque user_list = ['admin', 'root'] user = user_list.pop() # 弹出list尾部的元素, list没有提供操作头部的方法 ...