首页 > 代码库 > [翻译] C++ STL容器参考手册 (总册)
[翻译] C++ STL容器参考手册 (总册)
1. 写在最前面
这将是博主的第一篇技术博客,思考再三决定从翻译开始。这将是一个系列的博客,由不同的章节组成,章节之间由超链接联系,开发过程将使用增量式开发,每次完成一个章节。本篇是本系列的总册,提供了所有子章节的超链接,另外所有的子章节也都将提供链接返回到本篇。
2. 本系列的目录结构
总册
第一章 <array>
第二章 <deque>
第三章 <forward_list>
第四章 <list>
第五章 <map>
第六章 <queue>
第七章 <set>
第八章 <stack>
第九章 <unordered_map>
第十章 <unordered_set>
第十一章 <vector>
3. 专有名词的翻译规范
专用名词的翻译在不同的资料中会有较大的差异,本文遵循如下的翻译规范:
array 数组
deque 双向队列
forward list 单链表
list 链表
map 映射
queue 队列
set 集合
stack 栈
unordered map 无序映射
unordered set 无序集合
vector 动态数组
priority queue 优先队列
4. 本系列的原文
http://www.cplusplus.com/reference/stl/
5. 标准容器
容器,正如其字面意思,是存储了一组对象的数据集合(这里的每个对象都是这个容器的元素),当然了这里的容器本身也是一个对象。所有的容器都被设计成为模板类,这样一来容器可存储的元素类型就具有非常大的灵活性。
容器负责管理自身用以存储元素的物理空间,并且提供了成员函数来访问这些元素 -- 有直接访问的方式也有通过迭代器(具有类似指针的属性)访问的方式。
容器实现了程序设计中非常常见的结构:动态数组(vector),队列(queue),栈(stack),堆(priority_queue),链表(list),树(set),关联数组(map)...
许多不同的容器具有相同的成员函数,并且共享一些功能。在决定使用哪一种具体的容器时,不仅仅需要考虑到容器提供的功能,同时也要考虑到访问其成员的效率(复杂度)。尤其是对于序列容器,这些容器在插入/删除元素与访问元素的复杂度之间有着不同的权衡。
stack, queue以及priority_queue被实现为容器适配器。容器适配器并不是完整的容器,而是一个提供了某些特定接口的类,容器适配器将一个容器封装起来,然后就可以通过容器适配器提供的这些接口来访问这个容器的元素。
6. 容器模板类
序列容器
array (c++11 only) | 数组类 (模板类) |
vector | 动态数组 (模板类) |
deque | 双端队列 (模板类) |
forward_list | 单链表 (模板类) |
list (c++11 only) | 链表 (模板类) |
容器适配器
stack | 先入后出栈 (模板类) |
queue | 先入先出队列 (模板类) |
priority_queue | 优先队列 (模板类) |
关联容器
set | 集合 (模板类) |
multiset | 多重集合 (模板类) |
map | 映射 (模板类) |
multimap | 多重影射 (模板类) |
无序关联容器
unordered_set | 无序集合 (模板类) |
unordered_multiset | 无序多重集合 (模板类) |
unordered_map | 无序映射 (模板类) |
unordered_multimap | 无序多重映射 (模板类) |
7. 成员列表
序列容器
Headers | <array> | <vector> | <deque> | <forward_list> | <list> | |
---|---|---|---|---|---|---|
Members | array | vector | deque | forward_list | list | |
constructor | implicit | vector | deque | forward_list | list | |
destructor | implicit | ~vector | ~deque | ~forward_list | ~list | |
operator= | implicit | operator= | operator= | operator= | operator= | |
iterators | begin | begin | begin | begin | begin before_begin | begin |
end | end | end | end | end | end | |
rbegin | rbegin | rbegin | rbegin | rbegin | ||
rend | rend | rend | rend | rend | ||
const iterators | begin | cbegin | cbegin | cbegin | cbegin cbefore_begin | cbegin |
cend | cend | cend | cend | cend | cend | |
crbegin | crbegin | crbegin | crbegin | crbegin | ||
crend | crend | crend | crend | crend | ||
capacity | size | size | size | size | size | |
max_size | max_size | max_size | max_size | max_size | max_size | |
empty | empty | empty | empty | empty | empty | |
resize | resize | resize | resize | resize | ||
shrink_to_fit | shrink_to_fit | shrink_to_fit | ||||
capacity | capacity | |||||
reserve | reserve | |||||
element access | front | front | front | front | front | front |
back | back | back | back | back | ||
operator[] | operator[] | operator[] | operator[] | |||
at | at | at | at | |||
modifiers | assign | assign | assign | assign | assign | |
emplace | emplace | emplace | emplace_after | emplace | ||
insert | insert | insert | insert_after | insert | ||
erase | erase | erase | erase_after | erase | ||
emplace_back | emplace_back | emplace_back | emplace_back | |||
push_back | push_back | push_back | push_back | |||
pop_back | pop_back | pop_back | pop_back | |||
emplace_front | emplace_front | emplace_front | emplace_front | |||
push_front | push_front | push_front | push_front | |||
pop_front | pop_front | pop_front | pop_front | |||
clear | clear | clear | clear | clear | ||
swap | swap | swap | swap | swap | swap | |
list operations | splice | splice_after | splice | |||
remove | remove | remove | ||||
remove_if | remove_if | remove_if | ||||
unique | unique | unique | ||||
merge | merge | merge | ||||
sort | sort | sort | ||||
reverse | reverse | reverse | ||||
observers | get_allocator | get_allocator | get_allocator | get_allocator | get_allocator | |
data | data | data |
关联容器
Headers | <set> | <map> | <unordered_set> | <unordered_map> | |||||
---|---|---|---|---|---|---|---|---|---|
Members | set | multiset | map | multimap | unordered_set | unordered_multiset | unordered_map | unordered_multimap | |
constructor | set | multiset | map | multimap | unordered_set | unordered_multiset | unordered_map | unordered_multimap | |
destructor | ~set | ~multiset | ~map | ~multimap | ~unordered_set | ~unordered_multiset | ~unordered_map | ~unordered_multimap | |
assignment | operator= | operator= | operator= | operator= | operator= | operator= | operator= | operator= | |
iterators | begin | begin | begin | begin | begin | begin | begin | begin | begin |
end | end | end | end | end | end | end | end | end | |
rbegin | rbegin | rbegin | rbegin | rbegin | |||||
rend | rend | rend | rend | rend | |||||
const iterators | cbegin | cbegin | cbegin | cbegin | cbegin | cbegin | cbegin | cbegin | cbegin |
cend | cend | cend | cend | cend | cend | cend | cend | cend | |
crbegin | crbegin | crbegin | crbegin | crbegin | |||||
crend | crend | crend | crend | crend | |||||
capacity | size | size | size | size | size | size | size | size | size |
max_size | max_size | max_size | max_size | max_size | max_size | max_size | max_size | max_size | |
empty | empty | empty | empty | empty | empty | empty | empty | empty | |
reserve | reserve | reserve | reserve | reserve | |||||
element access | at | at | at | ||||||
operator[] | operator[] | operator[] | |||||||
modifiers | emplace | emplace | emplace | emplace | emplace | emplace | emplace | emplace | emplace |
emplace_hint | emplace_hint | emplace_hint | emplace_hint | emplace_hint | emplace_hint | emplace_hint | emplace_hint | emplace_hint | |
insert | insert | insert | insert | insert | insert | insert | insert | insert | |
erase | erase | erase | erase | erase | erase | erase | erase | erase | |
clear | clear | clear | clear | clear | clear | clear | clear | clear | |
swap | swap | swap | swap | swap | swap | swap | swap | swap | |
operations | count | count | count | count | count | count | count | count | count |
find | find | find | find | find | find | find | find | find | |
equal_range | equal_range | equal_range | equal_range | equal_range | equal_range | equal_range | equal_range | equal_range | |
lower_bound | lower_bound | lower_bound | lower_bound | lower_bound | |||||
upper_bound | upper_bound | upper_bound | upper_bound | upper_bound | |||||
observers | get_allocator | get_allocator | get_allocator | get_allocator | get_allocator | get_allocator | get_allocator | get_allocator | get_allocator |
key_comp | key_comp | key_comp | key_comp | key_comp | |||||
value_comp | value_comp | value_comp | value_comp | value_comp | |||||
key_eq | key_eq | key_eq | key_eq | key_eq | |||||
hash_function | hash_function | hash_function | hash_function | hash_function | |||||
buckets | bucket | bucket | bucket | bucket | bucket | ||||
bucket_count | bucket_count | bucket_count | bucket_count | bucket_count | |||||
bucket_size | bucket_size | bucket_size | bucket_size | bucket_size | |||||
max_bucket_count | max_bucket_count | max_bucket_count | max_bucket_count | max_bucket_count | |||||
hash policy | rehash | rehash | rehash | rehash | rehash | ||||
load_factor | load_factor | load_factor | load_factor | load_factor | |||||
max_load_factor | max_load_factor | max_load_factor | max_load_factor | max_load_factor |
[翻译] C++ STL容器参考手册 (总册)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。