length()
或size()
: 返回字符串的长度。empty()
: 检查字符串是否为空。clear()
: 清空字符串内容。assign(str)
: 将字符串内容设置为 str。append(str) 或 operator+=
: 将字符串 str 连接到当前字符串的末尾。insert(pos, str)
: 在指定位置 pos 插入字符串 str。erase(pos, len)
: 从指定位置 pos 开始擦除长度为 len 的字符。replace(pos, len, str)
: 用字符串 str 替换从 pos 位置开始的长度为 len 的字符。substr(pos, len)
: 返回从 pos 位置开始的长度为 len 的子字符串。find(str, pos)
: 在字符串中查找子字符串 str,从位置 pos 开始,返回第一个匹配的位置。rfind(str, pos)
: 在字符串中反向查找子字符串 str,从位置 pos 开始,返回最后一个匹配的位置。compare(str)
: 比较当前字符串与 str,返回 0 表示相等,正数表示大于,负数表示小于。c_str()
: 返回一个指向以 null 结尾的 C 风格字符串的指针
-
添加元素:
push_back(element)
: 将元素添加到末尾。emplace_back(args)
: 在末尾直接构造元素。insert(pos, element)
: 在指定位置插入元素。
-
访问元素:
at(index)
: 返回指定索引处的元素。operator[] (index)
: 使用索引访问元素。front()
: 返回第一个元素。back()
: 返回最后一个元素。
-
删除元素:
pop_back()
: 删除最后一个元素。erase(pos)
: 删除指定位置的元素。clear()
: 清空容器中的所有元素。
-
容量和大小:
size()
: 返回容器中元素的个数。capacity()
: 返回容器当前的容量。reserve(n)
: 分配至少n个元素的存储空间。
-
迭代器:
begin()
: 返回指向容器第一个元素的迭代器。end()
: 返回指向容器末尾(下一个元素的位置)的迭代器。
-
其他:
empty()
: 检查容器是否为空。swap(other)
: 交换两个vector
的内容。resize(size)
: 改变vector
的大小。shrink_to_fit()
: 请求释放多余的容量。
- vector:动态数组
- list:双向链表
- deque:双端队列
- set:集合
- map:映射
- multiset:多重集合
- multimap:多重映射
- stack:栈
- queue:队列
- priority_queue:优先队列
算法函数:
- sort:对容器进行排序
- find:在容器中查找指定元素
- reverse:反转容器中的元素
- count:计算容器中指定元素的个数
- accumulate:计算容器中元素的累积和
- max_element:查找容器中的最大元素
- min_element:查找容器中的最小元素
- transform:对容器中的元素进行变换
- fill:用指定值填充容器
- erase:删除容器中的元素
迭代器:
- begin:返回容器的起始迭代器
- end:返回容器的结束迭代器
- advance:在迭代器上前进指定步数
- distance:计算两个迭代器之间的距离
strlen
:用于计算字符串的长度。strcpy
:用于将一个字符串复制到另一个字符串。strcat
:用于将一个字符串追加到另一个字符串的末尾。strcmp
:用于比较两个字符串。strchr
:用于在字符串中查找特定字符的第一次出现。strstr
:用于在字符串中查找特定子字符串的第一次出现。memset
:用于将指定的值设置到字符串的每个字符。memcpy
:用于将一个字符串的内容复制到另一个字符串。strtok
:用于将字符串分解为标记(token)。
-
STL(标准模板库):STL 包括许多容器(如vector、map、set)、算法(如sort、search)、迭代器等,是C++标准库的一部分,为竞赛编程提供了丰富的数据结构和算法支持。
-
IOStreams:C++标准库的输入输出流,包括iostream、fstream、stringstream等,用于处理标准输入输出和文件操作。
-
C++标准模板库(STL)的其他组件:除了容器和算法,STL还包括诸如队列、堆栈、优先队列等数据结构,以及各种迭代器和算法,这些都可以在竞赛中派上用场。
-
cmath:这是C++标准库中的数学库,包括各种数学函数,如sin、cos、sqrt等。
-
cstring:用于处理字符串和字符数组的库,包括函数如strlen、strcpy、strcat等。
-
vector:这是STL中的一个动态数组,用于存储一系列元素,通常在竞赛中作为主要的数据结构之一。
-
algorithm:STL中的algorithm头文件提供了各种常见算法,如排序、查找、交换等,可以大大简化编程任务。
-
queue和stack:STL中的队列和栈可以用于实现各种数据结构,如广度优先搜索(BFS)和深度优先搜索(DFS)。
-
unordered_map和unordered_set:这些容器提供了快速的查找和插入操作,适用于处理大量数据。
-
bitset:用于位运算的库,通常在一些位操作相关的问题中使用。
-
cmath:包含各种数学函数,如三角函数、指数函数、对数函数等,对数学问题很有帮助。
-
ctime:包含时间处理相关的函数,如clock、time等,有时在竞赛中需要用于性能分析。