码迷,mamicode.com
首页 > 编程语言 > 详细

c++标准库之容器

时间:2014-12-29 11:50:52      阅读:214      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!