我有以下代码:
auto rrr="my mixed string"s;
rrr.erase(std::remove_if(std::begin(rrr), std::end(rrr), [](char const c) { return c == 'm'; }));
std::cout<<rrr<<std::endl;
输出为y ixed stringg
我希望代码只删除字符串中的每个m
,而是在末尾也添加了g
为什么会这样,如何解决?
erase
重载。您正在调用erase()
重载,该重载使用单个迭代器参数,该迭代器是从字符串中删除的单个字符的迭代器。如果要删除字符串末尾的所有内容,也请传递end()。