c++ Primer 的一点基础记录(4)–集合类型

这里开始进入c++的集合类型了。vector,deque,list。

 

1,随机访问:vector适合

    如果元素个数已知:vector适合

    任意位置插入元素:list适合

    只在头和尾插入或删除元素:vector适合 

    如果要在头插入元素:deque适合

  

 

2, 容量是什么东西。容量是对于连续存储的容器来说的,比如vector,string,deque,方法capacity()能获取当前的容量,也可以理解,下次容器增加长度的值是多少,就是这个容量的2倍。而list则没有容量这么一说。所以也没有capacity方法了。size()是获取当前容器中的元素个数,和容量2马事情。

 

3,vector和list在存储数据上的比较:

     当是小额数据时vector比list好。(时间上)

     当是大额数据时list好于vector。(时间上)

     因为,vector的长度增长是按照容量来的,也就是当第一次增长的数据量满了,接着第二次增长,但是这个增长的过程比较复杂,首先要调用所有原容器中的数据的构造函数,然后复制到新增长后的内存区域,接着调用原析构函数,如果数据量变大的话,明显的感觉到动作频繁。

    而list则没有这个问题,list通过双向链表改变头元素的前后指针即可。但是过程需要移动中间元素,所以小数据看不出优越性,大数据则明显在时间上优于vector。

    解决vector的大数据不足可以在数据量过大时转换到list。 

 

4,预定义容器时:元素类型有3个要素需要遵守:1.支持equality操作符。2.支持小于操作符。3.支持默认构造函数,或者没有定义任何构造函数。

5, const类型的vector必须使用const类型的iterator。

 6,swap()和=的区别。在对容器做赋值操作时,swap保留原始容器内容,而=不保留。swap后,获取被复制容器的大小。 

7, 

 

原文链接: https://www.cnblogs.com/sdywcd_coffee/archive/2010/01/12/1645275.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++ Primer 的一点基础记录(4)--集合类型

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/6670

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月6日 下午3:10
下一篇 2023年2月6日 下午3:13

相关推荐