首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Containers library

容器库是类模板和算法的通用集合,允许程序员轻松地实现诸如队列、列表和堆栈之类的公共数据结构。有三类容器--顺序容器、关联容器和无序关联容器--每个容器都是为了支持不同的操作集而设计的。

容器管理为其元素分配的存储空间,并提供成员函数来直接或通过迭代器%28对象访问它们,这些对象的属性类似于指针%29。

大多数容器至少有几个成员函数是共同的,并且共享功能。哪个容器对特定的应用程序最好,这不仅取决于所提供的功能,还取决于它在不同工作负载下的效率。

序列容器

序列容器实现了可以顺序访问的数据结构。

array (since C++11)

static contiguous array (class template)

vector

dynamic contiguous array (class template)

deque

double-ended queue (class template)

forward_list (since C++11)

singly-linked list (class template)

list

doubly-linked list (class template)

关联容器

关联容器实现可快速搜索%28O%28log n%29复杂性%29的排序数据结构。

set

collection of unique keys, sorted by keys (class template)

map

collection of key-value pairs, sorted by keys, keys are unique (class template)

multiset

collection of keys, sorted by keys (class template)

multimap

collection of key-value pairs, sorted by keys (class template)

无序关联容器

无序关联容器实现未排序%28散列%29数据结构,可以快速搜索%28O%281%29,O%28N%29最坏情况复杂性%29。

unordered_set (since C++11)

collection of unique keys, hashed by keys (class template)

unordered_map (since C++11)

collection of key-value pairs, hashed by keys, keys are unique (class template)

unordered_multiset (since C++11)

collection of keys, hashed by keys (class template)

unordered_multimap (since C++11)

collection of key-value pairs, hashed by keys (class template)

集装箱适配器

容器适配器为顺序容器提供了不同的接口。

stack

adapts a container to provide stack (LIFO data structure) (class template)

queue

adapts a container to provide queue (FIFO data structure) (class template)

priority_queue

adapts a container to provide priority queue (class template)

迭代器失效

Thread safety All container functions can be called concurrently by different threads on different containers. More generally, the C++ standard library functions do not read objects accessible by other threads unless those objects are directly or indirectly accessible via the function arguments, including the this pointer. All const member functions can be called concurrently by different threads on the same container. In addition, the member functions begin(), end(), rbegin(), rend(), front(), back(), data(), find(), lower_bound(), upper_bound(), equal_range(), at(), and, except in associative containers, operator[], behave as const for the purposes of thread safety (that is, they can also be called concurrently by different threads on the same container). More generally, the C++ standard library functions do not modify objects unless those objects are accessible, directly or indirectly, via the function's non-const arguments, including the this pointer. Different elements in the same container can be modified concurrently by different threads, except for the elements of std::vector<bool> (for example, a vector of std::future objects can be receiving values from multiple threads). Iterator operations (e.g. incrementing an iterator) read, but do not modify the underlying container, and may be executed concurrently with operations on other iterators on the same container, with the const member functions, or reads from the elements. Container operations that invalidate any iterators modify the container and cannot be executed concurrently with any operations on existing iterators even if those iterators are not invalidated. Elements of the same container can be modified concurrently with those member functions that are not specified to access these elements. More generally, the C++ standard library functions do not read objects indirectly accessible through their arguments (including other elements of a container) except when required by its specification. In any case, container operations (as well as algorithms, or any other C++ standard library functions) may be parallelized internally as long as this does not change the user-visible results (e.g. std::transform may be parallelized, but not std::for_each which is specified to visit each element of a sequence in order)

(since C++11)

  1. 所有容器函数都可以由不同容器上的不同线程并发调用。更普遍的情况是,C++标准库函数不会读取其他线程可以访问的对象,除非这些对象可以通过函数参数(包括这个指针)直接或间接地访问。
  1. const成员函数可以由同一容器上的不同线程并发调用。此外,成员的功能begin(),,,end(),,,rbegin(),,,rend(),,,front(),,,back(),,,data(),,,find(),,,lower_bound(),,,upper_bound(),,,equal_range(),,,at(),除了在关联容器中,operator[],表现得像const为了线程安全%28,也就是,它们也可以由同一容器%29上的不同线程并发调用。更普遍的情况是,C++标准库函数不修改对象,除非这些对象可以通过函数%27s的非Const参数(包括此指针)直接或间接地访问。
  1. 不同的线程可以同时修改同一容器中的不同元素,但std::vector<bool>%28例如,向量为std::future对象可以从多线程%29接收值。
  1. Iterator操作%28例如。增量迭代器%29读取,但不修改基础容器,并且可以与对同一容器上的其他迭代器、Const成员函数的操作同时执行,或者从元素中读取。使任何迭代器失效的容器操作修改容器,并且不能与现有迭代器上的任何操作同时执行,即使这些迭代器没有失效。
  1. 可以与未指定用于访问这些元素的成员函数同时修改同一容器的元素。更普遍的情况是,C++标准库函数不会读取通过参数%28(包括容器%29的其他元素)间接访问的对象,除非它的规范需要。
  1. 在任何情况下,容器操作%28以及算法,或任何其他C++标准库函数%5月29日都在内部并行化,只要这不改变用户可见的结果%28例如。std::transform可能是并行化的,但不是std::for_each,它指定按%29顺序访问序列的每个元素。

%28自C++11%29

成员函数表

  • functions present in C++03

  • functions present since C++11

  • functions present since C++17

Sequence containers

Associative containers

Unordered associative containers

Container adaptors

Header

<array>

<vector>

<deque>

<forward_list>

<list>

<set>

<map>

<unordered_set>

<unordered_map>

<stack>

<queue>

Container

array

array

vector

vector

deque

deque

forward_list

forward_list

list

list

set

set

multiset

multiset

map

map

multimap

multimap

unordered_set

unordered_set

unordered_multiset

unordered_multiset

unordered_map

unordered_map

unordered_multimap

unordered_multimap

stack

stack

queue

queue

priority_queue

priority_queue

列阵

矢量

德克

前移[医]列单

列单

多集

地图

穆蒂马普

无序[医]集

无序[医]多集

无序[医]地图

无序[医]穆蒂马普

堆叠

排队

优先权[医]排队

29%28构造函数%29%28隐式%29向量向量deque前向[医]前列[医]列表列表集集多集多集映射映射多时间点多序列无序[医]集无序[医]集无序[医]多集无序[医]多集无序[医]地图无序[医]地图无序[医]多重无序[医]多栈堆栈队列队列优先级[医]队列优先级[医]排队

%28构造函数%29

矢量

德克

前移[医]列单

列单

多集

地图

穆蒂马普

无序[医]集

无序[医]多集

无序[医]地图

无序[医]穆蒂马普

堆叠

排队

优先权[医]排队

%28析构器%29%28析构器%29%28隐式%29矢量~矢量~deque~deque~前进[医]列表~转发[医]列表~列表~列表~集~集~多集~多集~映射~映射~多个序列~无序[医]集~无序[医]集~无序[医]多集~无序[医]多集~无序[医]地图~无序[医]地图~无序[医]多重无序[医]多协议栈堆栈队列队列优先级[医]队列~优先级[医]排队

%28破坏者%29

~矢量

~德

~正[医]列单

~列表

~集

~多集

~地图

~Multimap

~无序[医]集

~无序[医]多集

~无序[医]地图

~无序[医]穆蒂马普

~栈

~队列

~优先权[医]排队

运算符=%28隐式%29操作符。运算符=运算符=运算符=运算符=运算符=运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

运算符=

分配,再分配,再分配,再转售,再转售,再转售,再分配,再分配,再分配

指派

指派

指派

指派

指派

迭代器开始。---。再发

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

开始

克贝

端端端cend cend cend。端端端cend cend cend。水煤浆

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

端部

康德

rBEGIN rBEGIN rBLEBINCRBIN rBEGINCRBINCRBERBERBINCRBEGINCRBERBINCRBINCRBINCRBINCRBINCRBINCRBINCRBINCRBINCRBINCRBIN。

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

里贝京

克拉贝恩

rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend rend crend。crend rend crend crend crend

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

拉皮

凹痕

在at at at再叙的目的...

操作者。[]运算符。[]运算符。[]运算符。[]运算符。[]运算符。[]运算符。[]运算符。[]准相合算子。[]运算符。[]准相合算子。[]运算符。[]再分配

操作者。[]

操作者。[]

操作者。[]

操作者。[]

操作者。[]

操作者。[]

前前前前前前前前前前方近10---

前部

前部

前部

前部

前部

前部

前部

背回回回后

退回去

退回去

退回去

退回去

退回去

退回去

容量空空空。空空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

空空

尺寸尺寸尺寸。尺寸尺寸尺寸

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

大小

马克斯[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]最大尺寸[医]浆料浆料

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

马克斯[医]大小

尺寸调整

调整尺寸

调整尺寸

调整尺寸

调整尺寸

调整尺寸

容量容量[医]计数桶[医]计数桶[医]计数桶[医]计数桶[医]计数桶[医]计数桶[医]计数桶[医]计数法

容量

容量

斗[医]数数

斗[医]数数

斗[医]数数

斗[医]数数

备用备用备用准备金率备用准备金率

储备

储备

储备

储备

储备

储备

收缩[医]到[医]配合收缩[医]到[医]配合收缩[医]到[医]配合收缩[医]到[医]配合收缩[医]到[医]配合收缩[医]到[医]适配性---再---

收缩[医]到[医]合身

收缩[医]到[医]合身

收缩[医]到[医]合身

修饰语清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰、清晰。清晰清晰

清澈

清澈

清澈

清澈

清澈

清澈

清澈

清澈

清澈

清澈

清澈

清澈

清澈

插入插入插入[医]插入后[医]插入后插入插入插入

插入

插入

插入

插入[医]后

插入

插入

插入

插入

插入

插入

插入

插入

插入

后置[医]后置[医]之后,在位置之后,在位置,位置,位置,位置,位置,位置,位置,位置

座落

座落

座落

座落[医]后

座落

座落

座落

座落

座落

座落

座落

座落

座落

座落[医]暗示嵌入[医]暗示---再---[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示嵌入[医]暗示再分配

座落[医]暗示

座落[医]暗示

座落[医]暗示

座落[医]暗示

座落[医]暗示

座落[医]暗示

座落[医]暗示

座落[医]暗示

座落[医]暗示

擦除;擦除;擦除[医]擦除后[医]擦除后擦除擦除擦除擦除擦除擦除擦除擦除擦除擦除擦除擦除擦除擦除

擦除

擦除

擦除

擦除[医]后

擦除

擦除

擦除

擦除

擦除

擦除

擦除

擦除

擦除

推[医]前推[医]前副推[医]前推[医]前推[医]前推[医]前推[医]前推[医]第一线---自愿性---金融---金融

推[医]前部

推[医]前部

推[医]前部

推[医]前部

座落[医]前置[医]前沿副基地[医]前置[医]前置[医]前置[医]前置[医]前置[医]第一线---自愿性---金融---金融

座落[医]前部

座落[医]前部

座落[医]前部

座落[医]前部

波普[医]前爆[医]前副POP[医]前爆[医]前爆[医]前爆[医]前爆[医]前爆[医]前部成品率成绩单...===

波普[医]前部

波普[医]前部

波普[医]前部

波普[医]前部

波普

波普

推[医]后推[医]反推[医]后推[医]后推[医]后推[医]反推[医]后推[医]后继性自愿---

推[医]退回去

推[医]退回去

推[医]退回去

推[医]退回去

座落[医]后座[医]背靠背[医]后座[医]后座[医]后座[医]背靠背[医]后座[医]再转轨---

座落[医]退回去

座落[医]退回去

座落[医]退回去

座落[医]退回去

座落

座落

座落

波普[医]后弹[医]背靠背POP[医]后弹[医]后弹[医]后弹[医]背靠背POP[医]后弹[医]GB/T1381-1998技术支持

波普[医]退回去

波普[医]退回去

波普[医]退回去

波普[医]退回去

波普

互换互换交换交换交换互换交换交换交换。互换交换交换交换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

互换

合并合并合并。再发

合并

合并

合并

合并

合并

合并

合并

合并

合并

合并

合并

抽提物。二次

提取液

提取液

提取液

提取液

提取液

提取液

提取液

提取液

提取液

列表操作拼接拼接[医]后接[医]剪接后的自愿性

接合

接合[医]后

接合

移除;再去除;再粗移除;再去除;再去除;再去除;再

移除

移除

移除

移除[医]若移除[医]若再合并移除[医]若移除[医]若移除[医]若移除[医]如果是自愿的话,则会有更多的可能性。

移除[医]

移除[医]如果

移除[医]如果

GB/T1459.2-1988反逆向商品商品商品价格

倒向

倒向

倒向

独特的,独特的,独特的,特别的,特别的,特别的,特别的,特别的,特别的,特别的

独树一帜

独树一帜

独树一帜

分类分类,再分类,再分类,再分类,再分类,再分类,再分类,再分类,再分类,再分类

排序

排序

排序

查计数计数计数

数数

数数

数数

数数

数数

数数

数数

数数

数数

找到,找到,找到,找到,找到,找到,找到,找到,找到

找出

找出

找出

找出

找出

找出

找出

找出

找出

较低[医]界下[医]准再税[医]界下[医]界下[医]界下[医]界下[医]界下[医]界下[医]界下[医]准准性

较低[医]定界

较低[医]定界

较低[医]定界

较低[医]定界

较低[医]定界

上层[医]界上[医]准再税[医]界上[医]界上[医]界上[医]界上[医]界上[医]界上[医]界上[医]准准性

上层[医]定界

上层[医]定界

上层[医]定界

上层[医]定界

上层[医]定界

平等[医]范围相等[医]范围---再分配---等量[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]范围相等[医]量程再分配

平等[医]范围

平等[医]范围

平等[医]范围

平等[医]范围

平等[医]范围

平等[医]范围

平等[医]范围

平等[医]范围

平等[医]范围

观察者键[医]COMP键[医]比较[医]COMP键[医]COMP键[医]COMP键[医]COMP键[医]COMP键[医]COMP键[医]COMP键[医]商品价格

键[医]康普

键[医]康普

键[医]康普

键[医]康普

键[医]康普

价值[医]COMP值[医]商品价值[医]COMP值[医]COMP值[医]COMP值[医]COMP值[医]COMP值[医]COMP值[医]COMP值[医]商品价格

价值[医]康普

价值[医]康普

价值[医]康普

价值[医]康普

价值[医]康普

散列[医]函数散列[医]功能评估[医]函数散列[医]函数散列[医]函数散列[医]函数散列[医]函数散列[医]函数散列[医]函数散列[医]功能再分配

散列[医]功能

散列[医]功能

散列[医]功能

散列[医]功能

散列[医]功能

键[医]EQ键[医]EQ---再---[医]EQ键[医]EQ键[医]EQ键[医]EQ键[医]EQ键[医]EQ键[医]EQ键[医]EQ法

键[医]情商

键[医]情商

键[医]情商

键[医]情商

键[医]情商

分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

弄到[医]分配器

容器阵列矢量矢量向量的正演[医]前列[医]列表列表集集多集多集映射映射多时间点多序列无序[医]集无序[医]集无序[医]多集无序[医]多集无序[医]地图无序[医]地图无序[医]多重无序[医]多栈堆栈队列队列优先级[医]队列优先级[医]排队

列阵

矢量

德克

前移[医]列单

列单

多集

地图

穆蒂马普

无序[医]集

无序[医]多集

无序[医]地图

无序[医]穆蒂马普

堆叠

排队

优先权[医]排队

关联容器无序关联容器适配器

%28 a PDF版本的表格可在文件:容器-库-概述-2012-12-27.pdf.%29

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券