C++ 如何删除字符串中的字符?

C++ 如何删除字符串中的字符?,c++,string,c++11,C++,String,C++11,以下面的代码为例 string str = "Alice ate apples"; str.erase(0, 2) 擦除函数是否实际分配了新内存并复制了“ice ate apples”或擦除函数是否进行了就地复制?对于basic\u string实现而言,使用迭代器形式的erase抛出异常是非法的。即使是erase的索引形式也只有在提供超出范围的索引时才会抛出 这很重要,因为分配内存是一个潜在的抛出操作。因此,如果erase不能抛出,那么它也不能分配。所以它没有 因此,必须在适当的地方进行擦

以下面的代码为例

string str = "Alice ate apples"; 
str.erase(0, 2)

擦除函数是否实际分配了新内存并复制了“ice ate apples”或擦除函数是否进行了就地复制?

对于
basic\u string
实现而言,使用迭代器形式的
erase
抛出异常是非法的。即使是
erase
的索引形式也只有在提供超出范围的索引时才会抛出

这很重要,因为分配内存是一个潜在的抛出操作。因此,如果
erase
不能抛出,那么它也不能分配。所以它没有

因此,必须在适当的地方进行擦除