C++ STL容器参考手册 (总册)

[翻译] C++ STL容器参考手册 (总册)

 

原文链接:https://www.cnblogs.com/barney-li/p/4186681.html

 

1. 写在最前面

这将是博主的第一篇技术博客,思考再三决定从翻译开始。这将是一个系列的博客,由不同的章节组成,章节之间由超链接联系,开发过程将使用增量式开发,每次完成一个章节。本篇是本系列的总册,提供了所有子章节的超链接,另外所有的子章节也都将提供链接返回到本篇。

 

2. 本系列的目录结构

总册

第一章 <array>

第二章 <deque>

第三章 <forward_list>

第四章 <list>

第五章 <map>

第六章 <queue>

第七章 <set>

第八章 <stack>

第九章 <unordered_map>

第十章 <unordered_set>

第十一章 <vector>

 

3. 专有名词的翻译规范

专用名词的翻译在不同的资料中会有较大的差异,本文遵循如下的翻译规范:

allocator 分配器

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>
Membersarrayvectordequeforward_listlist
 constructorimplicitvectordequeforward_listlist
destructorimplicit~vector~deque~forward_list~list
operator=implicitoperator=operator=operator=operator=
iteratorsbeginbeginbeginbeginbegin
before_begin
begin
endendendendendend
rbeginrbeginrbeginrbegin rbegin
rendrendrendrend rend
const iteratorsbegincbegincbegincbegincbegin
cbefore_begin
cbegin
cendcendcendcendcendcend
crbegincrbegincrbegincrbegin crbegin
crendcrendcrendcrend crend
capacitysizesizesizesize size
max_sizemax_sizemax_sizemax_sizemax_sizemax_size
emptyemptyemptyemptyemptyempty
resize resizeresizeresizeresize
shrink_to_fit shrink_to_fitshrink_to_fit  
capacity capacity   
reserve reserve   
element accessfrontfrontfrontfrontfrontfront
backbackbackback back
operator[]operator[]operator[]operator[]  
atatatat  
modifiersassign assignassignassignassign
emplace emplaceemplaceemplace_afteremplace
insert insertinsertinsert_afterinsert
erase eraseeraseerase_aftererase
emplace_back emplace_backemplace_back emplace_back
push_back push_backpush_back push_back
pop_back pop_backpop_back pop_back
emplace_front  emplace_frontemplace_frontemplace_front
push_front  push_frontpush_frontpush_front
pop_front  pop_frontpop_frontpop_front
clear clearclearclearclear
swapswapswapswapswapswap
list operationssplice   splice_aftersplice
remove   removeremove
remove_if   remove_ifremove_if
unique   uniqueunique
merge   mergemerge
sort   sortsort
reverse   reversereverse
observersget_allocator get_allocatorget_allocatorget_allocatorget_allocator
datadatadata   

关联容器

Headers<set><map><unordered_set><unordered_map>
Memberssetmultisetmapmultimapunordered_setunordered_multisetunordered_mapunordered_multimap
 constructorsetmultisetmapmultimapunordered_setunordered_multisetunordered_mapunordered_multimap
destructor~set~multiset~map~multimap~unordered_set~unordered_multiset~unordered_map~unordered_multimap
assignmentoperator=operator=operator=operator=operator=operator=operator=operator=
iteratorsbeginbeginbeginbeginbeginbeginbeginbeginbegin
endendendendendendendendend
rbeginrbeginrbeginrbeginrbegin    
rendrendrendrendrend    
const iteratorscbegincbegincbegincbegincbegincbegincbegincbegincbegin
cendcendcendcendcendcendcendcendcend
crbegincrbegincrbegincrbegincrbegin    
crendcrendcrendcrendcrend    
capacitysizesizesizesizesizesizesizesizesize
max_sizemax_sizemax_sizemax_sizemax_sizemax_sizemax_sizemax_sizemax_size
emptyemptyemptyemptyemptyemptyemptyemptyempty
reserve    reservereservereservereserve
element accessat  at   at 
operator[]  operator[]   operator[] 
modifiersemplaceemplaceemplaceemplaceemplaceemplaceemplaceemplaceemplace
emplace_hintemplace_hintemplace_hintemplace_hintemplace_hintemplace_hintemplace_hintemplace_hintemplace_hint
insertinsertinsertinsertinsertinsertinsertinsertinsert
eraseeraseeraseeraseeraseeraseeraseeraseerase
clearclearclearclearclearclearclearclearclear
swapswapswapswapswapswapswapswapswap
operationscountcountcountcountcountcountcountcountcount
findfindfindfindfindfindfindfindfind
equal_rangeequal_rangeequal_rangeequal_rangeequal_rangeequal_rangeequal_rangeequal_rangeequal_range
lower_boundlower_boundlower_boundlower_boundlower_bound    
upper_boundupper_boundupper_boundupper_boundupper_bound    
observersget_allocatorget_allocatorget_allocatorget_allocatorget_allocatorget_allocatorget_allocatorget_allocatorget_allocator
key_compkey_compkey_compkey_compkey_comp    
value_compvalue_compvalue_compvalue_compvalue_comp    
key_eq    key_eqkey_eqkey_eqkey_eq
hash_function    hash_functionhash_functionhash_functionhash_function
bucketsbucket    bucketbucketbucketbucket
bucket_count    bucket_countbucket_countbucket_countbucket_count
bucket_size    bucket_sizebucket_sizebucket_sizebucket_size
max_bucket_count    max_bucket_countmax_bucket_countmax_bucket_countmax_bucket_count
hash policyrehash    rehashrehashrehashrehash
load_factor    load_factorload_factorload_factorload_factor
max_load_factor    max_load_factormax_load_factormax_load_factormax_load_factor
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值