ACM竞赛中常用的C++ STL字符串与向量函数详解
需积分: 9 66 浏览量
更新于2024-09-26
收藏 17KB DOCX 举报
"ACM常用的STL文档包含了关于标准C++库中字符串类std::string以及向量类模板std::vector的重要成员函数的详细说明。这些工具在算法竞赛(ACM)和其他编程任务中非常常见,是高效编程的基础。"
在C++中,STL(Standard Template Library,标准模板库)是提供了一系列高效容器、迭代器、算法和函数对象的库,极大地提高了编程效率。以下是关于std::string和std::vector的详细说明:
1. **std::string**:
- `std::string s1;` 创建一个空字符串。
- `std::string s3(s2);` 通过另一个字符串创建副本。
- `std::string s2("thisisastring");` 初始化字符串。
- `begin()` 和 `end()` 分别返回指向字符串开始和结束的迭代器。
- `rbegin()` 和 `rend()` 返回反向迭代器,用于反向遍历。
- `size()` 和 `length()` 返回字符串的长度。
- `max_size()` 表示字符串可能的最大长度。
- `capacity()` 指示当前分配的内存可容纳的字符数量。
- `empty()` 判断字符串是否为空。
- `operator[]` 访问指定索引处的字符。
- `c_str()` 返回C风格的const char*指针。
- `data()` 获取字符串数据的地址。
- `operator=` 用于赋值。
- `reserve()` 预先分配内存。
- `swap()` 交换两个字符串的内容。
- `insert()` 在指定位置插入字符或字符串。
- `append()` 追加字符串。
- `push_back()` 添加单个字符到字符串末尾。
- `erase()` 删除指定范围的字符。
- `clear()` 清空字符串。
- `resize()` 改变字符串的大小。
- `assign()` 重新分配字符串的值。
- `replace()` 替换指定范围的字符。
- `copy()` 将字符串复制到其他位置。
- `find()` 查找子字符串并返回索引。
- `rfind()` 反向查找子字符串。
- `find_first_of()` 查找包含子串中的任意字符的第一个位置。
- `find_first_not_of()` 查找不包含子串中任意字符的第一个位置。
- `find_last_of()` 查找包含子串中任意字符的最后一个位置。
- `find_last_not_of()` 查找不包含子串中任意字符的最后一个位置。
- `substr(n1, len)` 提取子字符串。
- 关系运算符(如 `==`, `!=`, `<`, `>` 等)支持字符串的比较。
- `operator>>` 从输入流读取字符串。
- `operator<<` 写入输出流。
- `getline()` 从输入流读取一行。
2. **std::vector**:
- `std::vector<type> name;` 创建一个空的类型为`type`的向量。
- `std::vector<type> name(size);` 创建一个具有指定大小的类型为`type`的向量,初始值未定义。
- `std::vector<type> name(initializer_list);` 使用初始化列表创建向量。
- `begin()` 和 `end()` 返回指向向量开始和结束的迭代器。
- `rbegin()` 和 `rend()` 返回反向迭代器。
- `size()` 返回向量的元素数量。
- `max_size()` 表示向量可能的最大大小。
- `capacity()` 指示当前分配的内存可容纳的元素数量。
- `empty()` 判断向量是否为空。
- `reserve()` 预先分配内存。
- `resize()` 改变向量大小,可以插入或移除元素。
- `push_back()` 在向量末尾添加元素。
- `pop_back()` 移除向量末尾的元素。
- `front()` 访问第一个元素。
- `back()` 访问最后一个元素。
- `operator[]` 访问指定索引处的元素。
- `at()` 安全地访问指定索引处的元素,越界时会抛出异常。
- `insert()` 在指定位置插入元素。
- `erase()` 删除指定位置的元素或范围。
- `clear()` 清空向量。
- `swap()` 交换两个向量的内容。
- `reserve()` 预先分配内存。
- `emplace()` 在向量的指定位置直接构造新元素。
- `emplace_back()` 在向量末尾直接构造新元素。
- `shrink_to_fit()` 请求向量的容量与实际元素数量一致。
在ACM编程中,std::string和std::vector是处理字符串和动态数组的关键工具,它们提供了丰富的操作和高效的性能,使得代码更加简洁和高效。了解并熟练掌握这两个容器的使用,对于提升编程能力至关重要。
2021-06-06 上传
2021-11-06 上传
2024-07-10 上传
2021-05-20 上传
GCC-pig
- 粉丝: 4
- 资源: 4
最新资源
- Oracle® Call Interface Programmer's Guide
- ARM应用系统开发详解
- ubuntu 速成手册(中文)
- 2008专升本必读篇:专升本英语考点
- 乳制品电子商务网站策划书
- BT下载 技术论文,英文版,原理,分析,协议
- 系统工程matlabfangzheng
- Thinking in C++ Second Edition v2.pdf
- C++趣味题(很有用)
- vc的使用技巧和方法
- Animation Magazine_100年来的动画
- 计算机组成原理习题集
- 模拟电子技术试卷及答案
- 2008数据库系统工程师真题+下午
- 2008数据库系统工程师真题+上午
- sql server2005卸载重装出错