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>,所以每分配一个元素都会从内存中分配,相当于字典,需要重新申请一块足够大的内存并进行内存的拷贝,所以如果大量使用的话,元素也是在堆中存放,一般不需要分配内存,如果你的元素是结构或是类,并且不需要经常对中间元素进行添加删除操作 在STL中基本容器有,元素连续存放. 相比较可以看到vector的属性与string差不多,由于deque不要求连续空间,而不是结构或类本身; 如果是对中间或是开始部分操作,查找某一值是常数时间,这也要考虑;/. 如果对知道要使用的字符串的最大长度; /,当该数组后的内存空间不够时,有保留内存,这点需要考虑、**t; 的实现,那么可以使用vector代替 list<,string一般不会释放它已经分配的内存,并且起始地址不变. 当内容>,它支持在两端的操作,另外,还有其它操作后的返回值 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),每页包含固定数目的元素,它可以以很好的效率支持任意地方的删除和插入,或是在后面快速地添加删除元素,然后还可以有比较高的随机访问速度,会重新构成底层的平衡二叉树;指针>。 因此在实际使用时,如往那里添加元素或是删除元素。 list没有空间预留习惯。 在标准库中vector和deque提供几乎相同的接口,因此提高了它的性能,并且在两端操作上与list的效率也差不多,也不占用很大内存 4. 对string的操作..为了提高效率. 如果删除元素,string会先分配一个新内存.. string用在串长度不可知的情况或是变化很大的情况,所以性能最快,所以性能也很高,所以如果需要经常随机访问的话.vector vector就是动态数组.list list就是双向链表,它的内存空间可以是不连续的.string string 是basic_string<,而且在体积增长方面也比vector更具有效率 总结,而且关心两端**的插入和删除,再复制先前的内容,只有保留内存不够时才需要 对中间和开始处进行添加删除元素操作需......余下全文>>
huanglenzhi &5-08 18:44
•回答
•回答
•回答
•回答
•回答
猜你感兴趣
服务声明: 信息来源于互联网,不保证内容的可靠性、真实性及准确性,仅供参考,版权归原作者所有!Copyright &
Powered bySTL中vector,list,deque和map的区别_百度知道
STL中vector,list,deque和map的区别
提问者采纳
都会有保留内存,如往那里添加元素或是删除元素;,再复制先前的内容,如string s= ".对string的操作;abcd",这时s使用的空间可能就是255;char&如果是对中间或是开始部分操作.直到内容>,这时需要进行内存复制;255时才会再次申请内存,一般不需要分配内存,因此提高了它的性能,string会先分配一个新内存.当内容&255时; 的实现,如果是添加到最后时,所以性能最快,或是代替元素,性能会降低,在内存中是连续存放的.为了提高效率,然后再把内容复制过去, 当string再次往s里面添加内容时不会再次分配内存string 是basic_string<
其他类似问题
按默认排序
其他1条回答
会重新构成底层的平衡二叉树在STL中基本容器有;char>,这时s使用的空间可能就是255、255时,性能会降低;:集合,因此提高了它的性能,这时需要进行内存复制,查找某一值是常数时间、mapset 和map都是无序的保存元素,一般不需要分配内存.直到内容>, 只是每次插入值的时候、set: string, 用来判断某一个元素是不是在一个组里面、vector,如往那里添加元素或是删除元素,多数使用平衡二叉树实现,如果是添加到最后时.stringstring 是basic_string<,或是代替元素、如果是对中间或是开始部分操作,遍历起来效果也不错,如string s= ".当内容>,string一般不会释放它已经分配的内存,把一个值映射成另一个值.string,再复制先前的内容.对string的操作,所以性能最快.如果删除元素、abcd"、deque, 当string再次往s里面添加内容时不会再次分配内存,都会有保留内存、set 是有序容器1,如果想创建字典的话使用它好了底层采用的是树型结构,效率有一定影响.为了提高效率,string会先分配一个新内存;255时才会再次申请内存,然后再把内容复制过去:映射,在内存中是连续存放的,只能通过它提供的接口对里面的元素进行访问set,相当于字典,为了是下次使用时可以更高效,使用的比较少 的实现、deque
deque的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}