cplusplus
.com
教程
参考
文章
论坛
C++
教程
参考
文章
论坛
参考
C 库
<cassert> (assert.h)
<cctype> (ctype.h)
<cerrno> (errno.h)
C++11
<cfenv> (fenv.h)
<cfloat> (float.h)
C++11
<cinttypes> (inttypes.h)
<ciso646> (iso646.h)
<climits> (limits.h)
<clocale> (locale.h)
<cmath> (math.h)
<csetjmp> (setjmp.h)
<csignal> (signal.h)
<cstdarg> (stdarg.h)
C++11
<cstdbool> (stdbool.h)
<cstddef> (stddef.h)
C++11
<cstdint> (stdint.h)
<cstdio> (stdio.h)
<cstdlib> (stdlib.h)
<cstring> (string.h)
C++11
<ctgmath> (tgmath.h)
<ctime> (time.h)
C++11
<cuchar> (uchar.h)
<cwchar> (wchar.h)
<cwctype> (wctype.h)
容器
C++11
<array>
<deque>
C++11
<forward_list>
<list>
<map>
<queue>
<set>
<stack>
C++11
<unordered_map>
C++11
<unordered_set>
<vector>
输入/输出
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
<ostream>
<sstream>
<streambuf>
多线程
C++11
<atomic>
C++11
<condition_variable>
C++11
<future>
C++11
<mutex>
C++11
<thread>
其他
<algorithm>
<bitset>
C++11
<chrono>
C++11
<codecvt>
<complex>
<exception>
<functional>
C++11
<initializer_list>
<iterator>
<limits>
<locale>
<memory>
<new>
<numeric>
C++11
<random>
C++11
<ratio>
C++11
<regex>
<stdexcept>
<string>
C++11
<system_error>
C++11
<tuple>
C++11
<type_traits>
C++11
<typeindex>
<typeinfo>
<utility>
<valarray>
参考
容器
库
容器
标准容器
容器是一种持有者对象,用于存储其他对象的集合(其元素)。它们以类模板的形式实现,这使得所支持的元素类型具有很大的灵活性。
容器管理其元素的存储空间,并提供成员函数来直接或通过迭代器(具有类似指针属性的引用对象)访问它们。
容器复制了编程中非常常用的结构:动态数组 (
vector
)、队列 (
queue
)、栈 (
stack
)、堆 (
priority_queue
)、链表 (
list
)、树 (
set
)、关联数组 (
map
)...
许多容器有几个共同的成员函数,并共享功能。针对特定需求决定使用哪种类型的容器,通常不仅取决于容器提供的功能,还取决于其某些成员的效率(复杂性)。对于序列容器尤其如此,它们在插入/删除元素和访问元素之间的复杂性方面提供了不同的权衡。
stack
、
queue
和
priority_queue
被实现为
容器适配器
。容器适配器不是完整的容器类,而是提供特定接口的类,它依赖于某个容器类(如
deque
或
list
)的对象来处理元素。底层容器被封装起来,使得其元素可以被
容器适配器
的成员访问,而与所使用的底层
容器
类无关。
容器类模板
序列容器
:
array
数组类
(类模板)
vector
向量
(类模板)
deque
双端队列
(类模板)
forward_list
前向列表
(类模板)
list
列表
(类模板)
容器适配器
:
stack
后进先出栈
(类模板)
queue
先进先出队列
(类模板)
priority_queue
优先队列
(类模板)
关联容器
:
set
集合
(类模板)
multiset
多键集合
(类模板)
map
映射
(类模板)
multimap
多键映射
(类模板)
无序关联容器
:
unordered_set
无序集合
(类模板)
unordered_multiset
无序多重集合
(类模板)
unordered_map
无序映射
(类模板)
unordered_multimap
无序多重映射
(类模板)
其他
:
有两个类模板与容器共享某些属性,有时会与它们一起分类:
bitset
和
valarray
。
成员一览表
这是一个比较图表,列出了不同容器中存在的不同成员函数
图例
:
C++98
C++98 起可用
C++11
C++11 新增
序列容器
头文件
<array>
<vector>
<deque>
<forward_list>
<list>
成员
array
vector
deque
forward_list
list
构造函数
隐式
vector
deque
forward_list
list
析构函数
隐式
~vector
~deque
~forward_list
~list
operator=
隐式
operator=
operator=
operator=
operator=
迭代器
begin
begin
begin
begin
begin
before_begin
begin
end
end
end
end
end
end
rbegin
rbegin
rbegin
rbegin
rbegin
rend
rend
rend
rend
rend
常量迭代器
cbegin
cbegin
cbegin
cbegin
cbegin
cbefore_begin
cbegin
cend
cend
cend
cend
cend
cend
crbegin
crbegin
crbegin
crbegin
crbegin
crend
crend
crend
crend
crend
容量
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
容量
容量
reserve
reserve
元素访问
front
front
front
front
front
front
back
back
back
back
back
operator[]
operator[]
operator[]
operator[]
at
at
at
at
修改器
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
列表操作
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
观察器
get_allocator
get_allocator
get_allocator
get_allocator
get_allocator
data
data
data
关联容器
头文件
<set>
<map>
<unordered_set>
<unordered_map>
成员
set
multiset
map
multimap
unordered_set
unordered_multiset
unordered_map
unordered_multimap
构造函数
set
multiset
map
multimap
unordered_set
unordered_multiset
unordered_map
unordered_multimap
析构函数
~set
~multiset
~map
~multimap
~unordered_set
~unordered_multiset
~unordered_map
~unordered_multimap
赋值
operator=
operator=
operator=
operator=
operator=
operator=
operator=
operator=
迭代器
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
常量迭代器
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
容量
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
元素访问
at
at
at
operator[]
operator[]
operator[]
修改器
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
操作
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
观察器
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
桶
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
哈希策略
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