STL基础4:STL7个常用容器的比较
2012-12-21 21:00
288 查看
1.STL容器分类:
STL的容器可以分为以下几个大类:
一 顺序(序列)容器, 有vector, list, deque, string,stack( 适配器类), queue( 适配器类), priority queues( 适配器类)
二 关联容器, 有set, multiset,
map, multimap, bitset,hash_set, hash_map, hash_multiset, hash_multimap
2.容器比较
3.各容器特点比较以及选择
4.各容器的图表说明
4.1 vector
4.2 deque
4.3 list
4.4 map/multimap
4.5 set/multiset
STL的容器可以分为以下几个大类:
一 顺序(序列)容器, 有vector, list, deque, string,stack( 适配器类), queue( 适配器类), priority queues( 适配器类)
二 关联容器, 有set, multiset,
map, multimap, bitset,hash_set, hash_map, hash_multiset, hash_multimap
2.容器比较
vector | deque | list | set | multiset | map | multimap | |
名称 | 向量容器 | 双向队列容器 | 列表容器 | 集合 | 多重集合 | 映射 | 多重映射 |
内部数 据结构 | 连续存储的数组形式(一端开口的组) | 连续或分段连续存储数组(两端 开口的数组) | 双向环状链表 | 红黑树(平衡检索二叉树) | 红黑树 | 红黑树 | 红黑树 |
头文件 | #include <vector> | #include <deque> | #include <list> | #include <set> | #include <set> | #include <map> | #include <map> |
操作元素的方式 | 下标运算符:[0](可以用迭代器,但插入删除操作时会失效) | 下标运算符或迭代器 | 只能用迭代器(不断用变量值来递推新值,相当于指针),不支持使用下标运算符 | 迭代器 | 迭代器 | 迭代器 | 迭代器 |
插入删除操作迭代器是否失效 | 插入和删除元素都会使迭代器失效 | 插入任何元素都会使迭代器失效。删除头和尾元素,指向被删除节点迭代器失效,而删除中间元素会使所有迭代器失效 | 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 | 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 | 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 | 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 | 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 |
vector | deque | list | set | multiset | map | multimap | |
名称 | 向量容器 | 双向队列容器 | 列表容器 | 集合 | 多重集合 | 映射 | 多重映射 |
特点 | 增加和获取元素效率 很高,插入和删除的 效率很低 | 增加和获取元素效率 较高,插入和删除的 效率较高 | 增加和获取元素效率 很低,插入和删除的 效率很高 | 1.键(关键字)和值(数据)相等(就是模版只有一个参数,键和值合起来) 2.键唯一 3.元素默认按升序排列 | 1.键和值相等 2.键可以不唯一 3.元素默认按升序排列 | 1.键和值分开(模版有两个参数,前面是键后面是值) 2.键唯一 3.元素默认按键的升序排列 | 1.键和值分开 2.键可以不唯一 3.元素默认按键的升序排列 |
定义容器 | vector<string> book(50); | deque<string> book(50); | list<string> book; | set<string> book; | multiset<string> book; | map<int,string> book; | multimap<int,string> book; |
4.1 vector
4.2 deque
4.3 list
4.4 map/multimap
4.5 set/multiset
相关文章推荐
- STL基础4:STL7个常用容器的比较
- STL基础4:STL7个常用容器的比较
- C++STL里面7个常用容器的比较
- STL — 7个常用容器的区别
- STL常用容器比较
- c++ 提高4 map容器 共性机制 使用时机 比较| STL算法 算法基础仿函数 谓词 函数适配器 遍历算法
- STL中几种常用容器比较
- STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。
- 20170608_STL 中vector 容器的一些常用函数,vector和数组的比较
- STL容器的效率比较
- 【C++】STL常用容器总结之二:顺序容器
- STL基础学习(STL中的容器解析、代码展示、例题分析,帮助你学STL)
- STL容器 vector,list,deque 性能比较
- 【STL】常用容器的方法
- 黑马程序员--java基础--java中常用的"容器"-集合
- STL常用容器用法之——Set和multiset
- 设计技巧33:从方法中获取信息 Collecting Parameter:集合参数,从方法中获取信息 容器比较常用
- STL(标准模板库)理论基础,容器,迭代器,算法
- stl 中 容器 set 类插入,删除,遍历,其中存储的元素为基础类型 int (1)
- 多线程操作STL容器时不同同步方式的比较