刷题该了解的STL
容器
容器几乎都有empty函数判断容器是否为空,size函数返回容器存储元素的数量,begin / end或rbegin / rend配合迭代器。
std::vector
头文件:<vector>
成员函数:
operator[]或at:都可以通过下标索引访问特定元素。front/back:返回第一个元素 / 最后一个元素。data:返回指向底层数组的指针。insert:在迭代器指向的地方插入一个或一段数据。push_back:在容器最后插入一个元素。pop_back:弹出容器最后一个元素。erase:将迭代器指向的数据删除。若传递两个迭代器则删除一段数据。clear:清空容器。
std::stack
头文件:<stack>
成员函数:
top:返回栈顶元素,不弹出。pop:弹出栈顶元素,不返回任何值。push:数据进栈。
std::queue
头文件:<queue>
成员函数:
front/back:返回第一个 / 最后一个元素。push/pop:队尾入队 / 队首出队。都不返回任何值。
std::set
头文件:<set>
成员函数:
insert:插入一个值earse:删除一个值count:返回元素出现的次数,集合中元素最多也就出现1次,可以用来判断在不在问题。find:返回给定元素的迭代器。lower_bound/upper_bound:返回第一个不小于 / 最后一个大于 给定元素的迭代器。
std::map
头文件:<map>
成员函数:
operator[]:更新或插入一个元素,根据给定的键。insert:插入一个键值对。erase:删除迭代器指向的键值对。count:返回给定键的元素数量,只有0和1,可以用来判断在不在问题。find:返回给定键的迭代器。lower_bound/upper_bound:和set的作用一样。
算法
头文件:<algorithm>
函数:
all_of:所有都为真返回真。容器空时返回真。any_of:一个为真就返回真。容器为空返回假。none_of:全假的时候返回真。容器为空返回真。(以上三个都可以自定义条件函数)for_each:将两个迭代器之间的元素,每个作为参数执行一遍给定的函数。count:统计给定元素出现的次数。count_if:统计满足条件的元素出现的次数。find:在给定范围内找到第一个和给定值相等的元素。find_if:在给定范围内找到第一个满足给定条件的元素。find_if_not:在给定范围内找到第一个不满足给定条件的元素。find_end:在给定范围内找到最后一个和给定值相等或满足给定条件的元素。search:在给定范围内寻找给定range。copy/copy_if:复制或复制满足条件的元素transform:每个元素都传递给指定函数并将结果存储在给定区域。remove:在给定范围内删除和给定值相等或满足给定条件的元素。is_partitioned:判断在给定范围内满足条件的元素和不满足的是否是分开的。partion:按给定条件将元素分为两组,返回分界处的迭代器。is_sorted:判断是否是升序,可指定判断条件。sort/stable_sort:按照给定条件排序。partial_sort:排序前N个元素。binary_search:二分查找。merge:合并两个有序的序列。max/min:返回给定值中最大最小的值。可指定条件函数。max_element/min_element:返回容器中最大最小元素
头文件:<numeric>
函数:
accumulate:累加给定范围内的元素。可指定初始值,可指定运算符。inner_product:内积。adjacent_difference:相连的相减,可指定运算符。partial_sum:每个元素是前面的累积,默认加法,可指定运算法。
其它
运算符
头文件:<functional>
plus:加,通过std::plus<int>指定整型加法,其它类似。minus:减multiplies:乘divides:除modules:取余negate:-xequal_to:相等not_equal_to:不相等greater:大于less:小于greater_equal:大于等于less_equal:小于等于logical_and:逻辑与logical_or:逻辑或logical_not:逻辑非bit_and/bit_or/bit_xor/bit_not:按位与/或/异或/非
最大最小值
头文件:<limits>
std::numeric_limits<type>::min() / max()