List
assign() 给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素
Vector
push_back() 在数组的最后添加一个数据
pop_back() 去掉数组的最后一个数据
at() 得到编号位置的数据
begin() 得到数组头的指针
end() 得到数组的最后一个单元+1的指针
front() 得到数组头的引用
back() 得到数组的最后一个单元的引用
max_size() 得到vector最大可以是多大
capacity() 当前vector分配的大小
size() 当前使用数据的大小
resize() 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
reserve() 改变当前vecotr所分配空间的大小
erase() 删除指针指向的数据项
clear() 清空当前的vector
rbegin() 将vector反转后的开始指针返回(其实就是原来的end-1)
rend() 将vector反转构的结束指针返回(其实就是原来的begin-1)
empty() 判断vector是否为空
swap() 与另一个vector交换数据
Stack
empty() 堆栈为空则返回真
pop() 移除栈顶元素
push() 在栈顶增加元素
size() 返回栈中元素数目
top() 返回栈顶元素
Queue
front() 返回 queue 中第一个元素的引用
back()返回 queue 中最后一个元素的引用
push(const T& obj) 在 queue 的尾部添加一个元素的副本
push(T&& obj) 以移动的方式在 queue 的尾部添加元素
pop() 删除 queue 中的第一个元素
size() 返回 queue 中元素的个数
empty() 如果 queue 中没有元素的话,返回 true
emplace() 用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象
swap(queue<T> &other_q) 将当前 queue 中的元素和参数 queue 中的元素交换 它们需要包含相同类型的元素
String
begin() 得到指向字符串开头的Iterator
end() 得到指向字符串结尾的Iterator
rbegin() 得到指向反向字符串开头的Iterator
rend() 得到指向反向字符串结尾的Iterator
size() 得到字符串的大小
length() 和size函数功能相同
max_size() 字符串可能的最大大小
capacity() 在不重新分配内存的情况下,字符串可能的大小
empty() 判断是否为空
operator[] 取第几个元素,相当于数组
c_str() 取得C风格的const char* 字符串
data() 取得字符串内容地址
operator= 赋值操作符
reserve() 预留空间
swap() 交换函数
insert() 插入字符
append() 追加字符
push_back() 追加字符
operator+= += 操作符
erase() 删除字符串
clear() 清空字符容器中所有内容
resize() 重新分配空间
assign() 和赋值操作符一样
replace() 替代
copy() 字符串到空间
find() 查找
rfind() 反向查找
find_first_of() 查找包含子串中的任何字符,返回第一个位置
find_first_not_of() 查找不包含子串中的任何字符,返回第一个位置
find_last_of() 查找包含子串中的任何字符,返回最后一个位置
find_last_not_of() 查找不包含子串中的任何字符,返回最后一个位置
substr() 得到字串
compare() 比较字符串
stoi(num); //int
stol(num); //long
stoul(num); //unsigned long
stoull(num); //unsigned long long
stof(num); //float
stod(num); //double
operator+ 字符串链接
operator== 判断是否相等
operator!= 判断是否不等于
operator< 判断是否小于
operator>> 从输入流中读入字符串
operator<< 字符串写入输出流
Set
Set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据
在Set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序
begin() 返回set容器的第一个元素
end() 返回set容器的最后一个元素
clear() 删除set容器中的所有的元素
empty() 判断set容器是否为空
insert() 插入一个元素
erase() 删除一个元素
size() 返回当前set容器中的元素个数
unordered_Set
unordered_Set与Set区别:
set
基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。unordered_set
基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,利用hash
函数对key
进行映射到不同区域进行保存。
Map
map是STL的一个关联容器,它提供一对一的hash。
第一个可以称为关键字(key),每个关键字只能在map中出现一次;
第二个可能称为该关键字的值(value);
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值给定元素的第一个位置
value_comp() 返回比较元素value的函数
unordered_Map
unordered_Map与Map区别:
map
内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树),红黑树具有自动排序的功能,因此map内部的所有元素都是有序的unordered_map
内部实现了一个哈希表(也叫散列表,通过把关键码值映射到Hash表中一个位置来访问记录,查找的时间复杂度可达到O(1)