首页 > 编程语言 > 详细

c++标准库之容器

时间:2014-12-29 11:49:40      阅读:357      评论:0      收藏:0      [点我收藏+]

array

对内置数组进行包装,捆绑常用操作之后就形成了array。array的优点是在时空间效率上与内置数组几乎一致,但比内置数组使用起来顺手。size函数代替 sizeof(arr)/sizeof(arr[0]),back函数代替了 arr[sizeof(arr)/sizeof(arr[0]-1],array还可以进行swap及比较。array的缺点是大小固定。

vector

容器大小可动态增长,不能动态缩减的容器。vector支持下标访问,访问速度仅次于内置数组与array。vector在尾部的增加、删除操作很高效,其它位置则很低效。在本质上,vector是一块连续的内存,当内存大小不够时,vector会申请一块更大的内存替换掉旧的内存。vector的优缺点与其本质有关。

deque

容器大小可动态增长及缩减。deque支持下标访问,但访问速度最慢。deque在头部、尾部的增加、删除操作很高效,其它位置较低。deque的优点与缺点则是源于其本质上是多块连续的内存,而不是一块。

list

list本质上是双向链表,所以不支持下标访问。list在任何位置插入、删除都是常量时间,除头尾外,比vector、deque要高效。

forward_list

forward_list本质上是单向链表,设计初衷是为了省空间(连size函数都省了)。forward_list不支持下标访问,操作方式也与其它的容器不同,vector、list的insert、erase操作都是删除iterator所指的元素,而forward_list则是删除iterator所指元素之后的元素。

set

关联容器,set对应的概念为集合,其优点在于可快速查找。

map

关联容器,map对应的概念为字典表,其优点也在于可快速查找。

c++标准库之容器

原文:http://www.cnblogs.com/vsuu/p/4191239.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!