string的erase函数重载
时间: 2024-09-13 13:19:14 浏览: 36
`string` 的 `erase` 函数是 C++ 标准库中 `std::string` 类的一个成员函数,它用于删除字符串中的某些字符。这个函数有几个重载版本,以提供不同的功能,从而允许删除单个字符、一个字符范围或指定位置开始的指定数量的字符。以下是几种常见的重载形式:
1. `erase(size_t pos, size_t len)`:从位置 `pos` 开始删除 `len` 个字符。
2. `erase(const_iterator first, const_iterator last)`:删除迭代器 `first` 和 `last` 之间的所有字符(包括 `first` 指向的字符,不包括 `last` 指向的字符)。
3. `erase(const_iterator position)`:删除迭代器 `position` 指向的字符。
使用示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello World";
// 删除从位置 6 开始的 5 个字符
str.erase(6, 5); // "Hello "
// 删除迭代器指向的位置的字符
auto it = str.begin() + 1; // 指向 'e'
str.erase(it); // "Hllo "
// 删除迭代器之间的字符
str.erase(str.begin(), str.begin() + 2); // "lo "
std::cout << str << std::endl; // 输出 "lo "
return 0;
}
```
在使用 `erase` 函数时需要注意迭代器的有效性,因为在删除字符后,迭代器可能会失效。
阅读全文