- Vector
begin() | 返回指向容器中第一个元素的迭代器 |
end() | 返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用 |
rbegin() | 返回指向最后一个元素的迭代器 |
rend() | 返回指向第一个元素所在位置前一个位置的迭代器 |
cbegin() | 和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
cend() | 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crend() | 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
size() | 返回实际元素个数 |
max_size() | 返回元素个数的最大值这通常是一个很大的值,一般是 232-1,所以我们很少会用到这个函数 |
resize() | 改变实际元素的个数 |
capacity() | 返回当前容量 |
empty() | 判断容器中是否有元素,若无元素,则返回 true;反之,返回 false |
reserve() | 增加容器的容量 |
shrink _to_fit() | 将内存减少到等于当前元素实际所使用的大小 |
operator[ ] | 重载了 [ ] 运算符,可以向访问数组中元素那样,通过下标即可访问甚至修改 vector 容器中的元素 |
at() | 使用经过边界检查的索引访问元素 |
front() | 返回第一个元素的引用 |
back() | 返回最后一个元素的引用 |
data() | 返回指向容器中第一个元素的指针 |
assign() | 用新元素替换原有内容 |
push_back() | 在序列的尾部添加一个元素 |
pop_back() | 移出序列尾部的元素 |
insert() | 在指定的位置插入一个或多个元素 |
erase() | 移出一个元素或一段元素 |
clear() | 移出所有的元素,容器大小变为 0 |
swap() | 交换两个容器的所有元素 |
emplace() | 在指定的位置直接生成一个元素 |
emplace_back() | 在序列尾部生成一个元素 |
- Deque
begin() | 返回指向容器中第一个元素的迭代器 |
end() | 返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用 |
rbegin() | 返回指向最后一个元素的迭代器 |
rend() | 返回指向第一个元素所在位置前一个位置的迭代器 |
cbegin() | 和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
cend() | 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crend() | 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
size() | 返回实际元素个数 |
max_size() | 返回容器所能容纳元素个数的最大值这通常是一个很大的值,一般是 232-1,我们很少会用到这个函数 |
resize() | 改变实际元素的个数 |
empty() | 判断容器中是否有元素,若无元素,则返回 true;反之,返回 false |
shrink _to_fit() | 将内存减少到等于当前元素实际所使用的大小 |
at() | 使用经过边界检查的索引访问元素 |
front() | 返回第一个元素的引用 |
back() | 返回最后一个元素的引用 |
assign() | 用新元素替换原有内容 |
push_back() | 在序列的尾部添加一个元素 |
push_front() | 在序列的头部添加一个元素 |
pop_back() | 移除容器尾部的元素 |
pop_front() | 移除容器头部的元素 |
insert() | 在指定的位置插入一个或多个元素 |
erase() | 移除一个元素或一段元素 |
clear() | 移出所有的元素,容器大小变为 0 |
swap() | 交换两个容器的所有元素 |
emplace() | 在指定的位置直接生成一个元素 |
emplace_front() | 在容器头部生成一个元素和 push_front() 的区别是,该函数直接在容器头部构造元素,省去了复制移动元素的过程 |
emplace_back() | 在容器尾部生成一个元素和 push_back() 的区别是,该函数直接在容器尾部构造元素,省去了复制移动元素的过程 |
- Array
begin() | 返回指向容器中第一个元素的随机访问迭代器 |
end() | 返回指向容器最后一个元素之后一个位置的随机访问迭代器,通常和 begin() 结合使用 |
rbegin() | 返回指向最后一个元素的随机访问迭代器 |
rend() | 返回指向第一个元素之前一个位置的随机访问迭代器 |
cbegin() | 和 begin() 功能相同,只不过在其基础上增加了 const 属性,不能用于修改元素 |
cend() | 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crend() | 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
size() | 返回容器中当前元素的数量,其值始终等于初始化 array 类的第二个模板参数 N |
max_size() | 返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N |
empty() | 判断容器是否为空,和通过 size()==0 的判断条件功能相同,但其效率可能更快 |
at(n) | 返回容器中 n 位置处元素的引用,该函数自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常 |
front() | 返回容器中第一个元素的直接引用,该函数不适用于空的 array 容器 |
back() | 返回容器中最后一个元素的直接应用,该函数同样不适用于空的 array 容器 |
data() | 返回一个指向容器首个元素的指针,利用该指针可实现复制容器中所有元素等类似功能 |
fill(val) | 将 val 这个值赋值给容器中的每个元素 |
array1.swap(array2) | 交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型 |
- List
begin() | 返回指向容器中第一个元素的双向迭代器 |
end() | 返回指向容器中最后一个元素所在位置的下一个位置的双向迭代器 |
rbegin() | 返回指向最后一个元素的反向双向迭代器 |
rend() | 返回指向第一个元素所在位置前一个位置的反向双向迭代器 |
cbegin() | 和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
cend() | 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
crend() | 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素 |
empty() | 判断容器中是否有元素,若无元素,则返回 true;反之,返回 false |
size() | 返回当前容器实际包含的元素个数 |
max_size() | 返回容器所能包含元素个数的最大值这通常是一个很大的值,一般是 232-1,所以我们很少会用到这个函数 |
front() | 返回第一个元素的引用 |
back() | 返回最后一个元素的引用 |
assign() | 用新元素替换容器中原有内容 |
emplace_front() | 在容器头部生成一个元素该函数和 push_front() 的功能相同,但效率更高 |
push_front() | 在容器头部插入一个元素 |
pop_front() | 删除容器头部的一个元素 |
emplace_back() | 在容器尾部直接生成一个元素该函数和 push_back() 的功能相同,但效率更高 |
push_back() | 在容器尾部插入一个元素 |
pop_back() | 删除容器尾部的一个元素 |
emplace() | 在容器中的指定位置插入元素该函数和 insert() 功能相同,但效率更高 |
insert() | 在容器中的指定位置插入元素 |
erase() | 删除容器中一个或某区域内的元素 |
swap() | 交换两个容器中的元素,必须保证这两个容器中存储的元素类型是相同的 |
resize() | 调整容器的大小 |
clear() | 删除容器存储的所有元素 |
splice() | 将一个 list 容器中的元素插入到另一个容器的指定位置 |
remove(val) | 删除容器中所有等于 val 的元素 |
remove_if() | 删除容器中满足条件的元素 |
unique() | 删除容器中相邻的重复元素,只保留一个 |
merge() | 合并两个事先已排好序的 list 容器,并且合并之后的 list 容器依然是有序的 |
sort() | 通过更改容器中元素的位置,将它们进行排序 |
reverse() | 反转容器中元素的顺序 |
- Map
begin() | 返回指向容器中第一个(注意,是已排好序的第一个)键值对的双向迭代器如果 map 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
end() | 返回指向容器最后一个元素(注意,是已排好序的最后一个)所在位置后一个位置的双向迭代器,通常和 begin() 结合使用如果 map 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
rbegin() | 返回指向最后一个(注意,是已排好序的最后一个)元素的反向双向迭代器如果 map 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器 |
rend() | 返回指向第一个(注意,是已排好序的第一个)元素所在位置前一个位置的反向双向迭代器如果 map 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器 |
cbegin() | 和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的键值对 |
cend() | 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的键值对 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的键值对 |
crend() | 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的键值对 |
find(key) | 在 map 容器中查找键为 key 的键值对,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器另外,如果 map 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
lower_bound(key) | 返回一个指向当前 map 容器中第一个大于或等于 key 的键值对的双向迭代器如果 map 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
upper_bound(key) | 返回一个指向当前 map 容器中第一个大于 key 的键值对的迭代器如果 map 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
equal_range(key) | 该方法返回一个 pair 对象(包含 2 个双向迭代器),其中 pair.first 和 lower_bound() 方法的返回值等价,pair.second 和 upper_bound() 方法的返回值等价也就是说,该方法将返回一个范围,该范围中包含的键为 key 的键值对(map 容器键值对唯一,因此该范围最多包含一个键值对) |
empty() | 若容器为空,则返回 true;否则 false |
size() | 返回当前 map 容器中存有键值对的个数 |
max_size() | 返回 map 容器所能容纳键值对的最大个数,不同的操作系统,其返回值亦不相同 |
operator[] | map容器重载了 [] 运算符,只要知道 map 容器中某个键值对的键的值,就可以向获取数组中元素那样,通过键直接获取对应的值 |
at(key) | 找到 map 容器中 key 键对应的值,如果找不到,该函数会引发 out_of_range 异常 |
insert() | 向 map 容器中插入键值对 |
erase() | 删除 map 容器指定位置、指定键(key)值或者指定区域内的键值对后续章节还会对该方法做重点讲解 |
swap() | 交换 2 个 map 容器中存储的键值对,这意味着,操作的 2 个键值对的类型必须相同 |
clear() | 清空 map 容器中所有的键值对,即使 map 容器的 size() 为 0 |
emplace() | 在当前 map 容器中的指定位置处构造新键值对其效果和插入键值对一样,但效率更高 |
emplace_hint() | 在本质上和 emplace() 在 map 容器中构造新键值对的方式是一样的,不同之处在于,使用者必须为该方法提供一个指示键值对生成位置的迭代器,并作为该方法的第一个参数 |
count(key) | 在当前 map 容器中,查找键为 key 的键值对的个数并返回注意,由于 map 容器中各键值对的键的值是唯一的,因此该函数的返回值最大为 1 |
- Set
begin() | 返回指向容器中第一个(注意,是已排好序的第一个)元素的双向迭代器如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
end() | 返回指向容器最后一个元素(注意,是已排好序的最后一个)所在位置后一个位置的双向迭代器,通常和 begin() 结合使用如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
rbegin() | 返回指向最后一个(注意,是已排好序的最后一个)元素的反向双向迭代器如果 set 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器 |
rend() | 返回指向第一个(注意,是已排好序的第一个)元素所在位置前一个位置的反向双向迭代器如果 set 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器 |
cbegin() | 和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值 |
cend() | 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值 |
crbegin() | 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值 |
crend() | 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值 |
find(val) | 在 set 容器中查找值为 val 的元素,如果成功找到,则返回指向该元素的双向迭代器;反之,则返回和 end() 方法一样的迭代器另外,如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
lower_bound(val) | 返回一个指向当前 set 容器中第一个大于或等于 val 的元素的双向迭代器如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
upper_bound(val) | 返回一个指向当前 set 容器中第一个大于 val 的元素的迭代器如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器 |
equal_range(val) | 该方法返回一个 pair 对象(包含 2 个双向迭代器),其中 pair.first 和 lower_bound() 方法的返回值等价,pair.second 和 upper_bound() 方法的返回值等价也就是说,该方法将返回一个范围,该范围中包含的值为 val 的元素(set 容器中各个元素是唯一的,因此该范围最多包含一个元素) |
empty() | 若容器为空,则返回 true;否则 false |
size() | 返回当前 set 容器中存有元素的个数 |
max_size() | 返回 set 容器所能容纳元素的最大个数,不同的操作系统,其返回值亦不相同 |
insert() | 向 set 容器中插入元素 |
erase() | 删除 set 容器中存储的元素 |
swap() | 交换 2 个 set 容器中存储的所有元素这意味着,操作的 2 个 set 容器的类型必须相同 |
clear() | 清空 set 容器中所有的元素,即令 set 容器的 size() 为 0 |
emplace() | 在当前 set 容器中的指定位置直接构造新元素其效果和 insert() 一样,但效率更高 |
emplace_hint() | 在本质上和 emplace() 在 set 容器中构造新元素的方式是一样的,不同之处在于,使用者必须为该方法提供一个指示新元素生成位置的迭代器,并作为该方法的第一个参数 |
count(val) | 在当前 set 容器中,查找值为 val 的元素的个数,并返回注意,由于 set 容器中各元素的值是唯一的,因此该函数的返回值最大为 1 |