STL中vector list deque,list,deque和map的区别

STL中map、set的数据结构及底层实现_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
STL中map、set的数据结构及底层实现
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢STL中string、vector、list、deque、set、map 的区别_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
喜欢此文档的还喜欢
STL中string、vector、list、deque、set、map 的区别
S​T​L​中​s​t​r​i​n​g​、​v​e​c​t​o​r​、​l​i​s​t​、​d​e​q​u​e​、​s​e​t​、​m​a​p​ ​的​区​别
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:5.16KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢问题补充&&
char&gt,所以每分配一个元素都会从内存中分配,相当于字典,需要重新申请一块足够大的内存并进行内存的拷贝,所以如果大量使用的话,元素也是在堆中存放,一般不需要分配内存,如果你的元素是结构或是类,并且不需要经常对中间元素进行添加删除操作  在STL中基本容器有,元素连续存放.  相比较可以看到vector的属性与string差不多,由于deque不要求连续空间,而不是结构或类本身;  如果是对中间或是开始部分操作,查找某一值是常数时间,这也要考虑;&#47.  如果对知道要使用的字符串的最大长度; &#47,当该数组后的内存空间不够时,有保留内存,这点需要考虑、**t; 的实现,那么可以使用vector代替  list&lt,string一般不会释放它已经分配的内存,并且起始地址不变.  当内容&gt,它支持在两端的操作,另外,还有其它操作后的返回值  2。但由于链表的特点,每删除一个元素都会释放它占用的内存,像vector一样使用[]访问任意元素,因为它要**处理堆跳转  deque也有保留空间.  list在哪里添加删除元素性能都很脯但由于它的内存空间是连续的,即[]操作符,这样可以避免移动时的构造与析构),在结构上它们的区别主要在于这两种容器在组织内存上不一样.还有就是在前面和后面添加元素时都不需要移动其它块的元素,在内存中是连续存放的; 因为再次分配内存时、deque,也就是支持随即存取。这些都大大影响了vector的效率,那么可以使用普通的char[], 只是每次插入值的时候: string、如果你需要高效的随即存取,所以性能不高 (最好将结构或类的指针放入vector中,vector只是在序列的尾段插入元素时才有效率,而char[]是在栈中分配的.  string.swap(y),每个元素都是放在一块内存中,而deque的分页组织方式即使在容器的前端也可以提供常数时间的in**rt和era**操作;完全是性能最低的做法.、vector, 当string再次往s里面添加内容时不会再次分配内存,因此它没有提供[]操作符的重载,如何选择这三个容器中哪一个,所以串的长度可以很大,也是在堆中保存内容的,实现而不必使用string:映射,为了是下次使用时可以更高效.deque  deque是一个双端队列(double-ended queue),每页包含固定数目的元素,它可以以很好的效率支持任意地方的删除和插入,或是在后面快速地添加删除元素,然后还可以有比较高的随机访问速度,会重新构成底层的平衡二叉树;指针&gt。  因此在实际使用时,如往那里添加元素或是删除元素。  list没有空间预留习惯。  在标准库中vector和deque提供几乎相同的接口,因此提高了它的性能,并且在两端操作上与list的效率也差不多,也不占用很大内存  4.  对string的操作..为了提高效率.  如果删除元素,string会先分配一个新内存..  string用在串长度不可知的情况或是变化很大的情况,所以性能最快,所以性能也很高,所以如果需要经常随机访问的话.vector  vector就是动态数组.list  list就是双向链表,它的内存空间可以是不连续的.string  string 是basic_string&lt,而且在体积增长方面也比vector更具有效率  总结,而且关心两端**的插入和删除,再复制先前的内容,只有保留内存不够时才需要  对中间和开始处进行添加删除元素操作需......余下全文>>
huanglenzhi &5-08 18:44
•回答
•回答
•回答
•回答
•回答
猜你感兴趣
服务声明: 信息来源于互联网,不保证内容的可靠性、真实性及准确性,仅供参考,版权归原作者所有!Copyright &
Powered bySTL中vector,list,deque和map的区别_百度知道
STL中vector,list,deque和map的区别
提问者采纳
都会有保留内存,如往那里添加元素或是删除元素;,再复制先前的内容,如string s= &quot.对string的操作;abcd&quot,这时s使用的空间可能就是255;char&如果是对中间或是开始部分操作.直到内容&gt,这时需要进行内存复制;255时才会再次申请内存,一般不需要分配内存,因此提高了它的性能,string会先分配一个新内存.当内容&255时; 的实现,如果是添加到最后时,所以性能最快,或是代替元素,性能会降低,在内存中是连续存放的.为了提高效率,然后再把内容复制过去, 当string再次往s里面添加内容时不会再次分配内存string 是basic_string&lt
其他类似问题
按默认排序
其他1条回答
会重新构成底层的平衡二叉树在STL中基本容器有;char&gt,这时s使用的空间可能就是255、255时,性能会降低;:集合,因此提高了它的性能,这时需要进行内存复制,查找某一值是常数时间、mapset 和map都是无序的保存元素,一般不需要分配内存.直到内容&gt, 只是每次插入值的时候、set: string, 用来判断某一个元素是不是在一个组里面、vector,如往那里添加元素或是删除元素,多数使用平衡二叉树实现,如果是添加到最后时.stringstring 是basic_string&lt,或是代替元素、如果是对中间或是开始部分操作,遍历起来效果也不错,如string s= &quot.当内容&gt,string一般不会释放它已经分配的内存,把一个值映射成另一个值.string,再复制先前的内容.对string的操作,所以性能最快.如果删除元素、abcd&quot、deque, 当string再次往s里面添加内容时不会再次分配内存,都会有保留内存、set 是有序容器1,如果想创建字典的话使用它好了底层采用的是树型结构,效率有一定影响.为了提高效率,string会先分配一个新内存;255时才会再次申请内存,然后再把内容复制过去:映射,在内存中是连续存放的,只能通过它提供的接口对里面的元素进行访问set,相当于字典,为了是下次使用时可以更高效,使用的比较少 的实现、deque
deque的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 stl vector find 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信