std::string erase() 方法
- 自 C++20 起
- 自 C++11 起
- 直到 C++11
// (1) Non const version only
constexpr basic_string& erase( size_type index = 0, size_type count = npos );
// (2) Non const version only
constexpr iterator erase( const_iterator position );
// (3) Non const version only
constexpr iterator erase( const_iterator first, const_iterator last );
// (1) Non const version only
basic_string& erase( size_type index = 0, size_type count = npos );
// (2) Non const version only
iterator erase( const_iterator position );
// (3) Non const version only
iterator erase( const_iterator first, const_iterator last );
// (1) Non const version only
basic_string& erase( size_type index = 0, size_type count = npos );
// (2) Non const version only
iterator erase( iterator position );
// (3) Non const version only
iterator erase( iterator first, iterator last );
从字符串中擦除指定字符。
- (1) 删除从
index
开始的std::min(count, size() - index)
个字符。 - (2) 删除
position
处的字符。 - (3) 删除范围 [ first, last ) 中的字符。
参数
index
- 要删除的第一个字符count
- 要删除的字符数position
- 指向要删除字符的迭代器first
,last
- 要删除字符的范围
返回值
复杂度
重要
本节需要改进。您可以通过编辑此文档页面来帮助我们。
异常
- (1) 如果
index > size()
,则为std::out_of_range
。 - (2-3) (无)
示例
Main.cpp
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
int main()
{
std::string s = "This Is An Example";
std::cout << "1) " << s << '\n';
s.erase(7, 3); // erases " An" using overload (1)
std::cout << "2) " << s << '\n';
s.erase(std::find(s.begin(), s.end(), ' ')); // erases first ' '; overload (2)
std::cout << "3) " << s << '\n';
s.erase(s.find(' ')); // trims from ' ' to the end of the string; overload (1)
std::cout << "4) " << s << '\n';
auto it = std::next(s.begin(), s.find('s')); // obtains iterator to the first 's'
s.erase(it, std::next(it, 2)); // erases "sI"; overload (3)
std::cout << "5) " << s << '\n';
}
输出
1) This Is An Example
2) This Is Example
3) ThisIs Example
4) ThisIs
5) This