[翻譯] C++ STL容器參考手冊 (總冊)


1. 寫在最前面

這將是博主的第一篇技術博客,思考再三決定從翻譯開始。這將是一個系列的博客,由不同的章節組成,章節之間由超鏈接聯系,開發過程將使用增量式開發,每次完成一個章節。本篇是本系列的總冊,提供了所有子章節的超鏈接,另外所有的子章節也都將提供鏈接返回到本篇。
 

2. 本系列的目錄結構

第三章 <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. 本系列的原文

 

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM