从字符串末尾删除几个字符的更有效的方法

more efficient way of remove a few characters from the end of a string

本文关键字:字符 几个 方法 有效 字符串 删除      更新时间:2023-10-16

我想从字符串中删除最后n个字符。我知道有一种叫做pop_back()的方法可以去掉最后一个字符。我可以像下面这样在循环中使用它,但感觉效率不高。

string st("hello world");
for (i=0; i<n; i++) {
    st.pop_back();
}

想知道是否有更有效的替代方法。谢谢。

std::string::erase就是你要找的。

如果你想擦除最后一个n字符,你可以这样做:

st.erase(st.length()-n);

但是一定要做正确的边界检查

string::substr将是更好的方法。你可以这样做:

st = st.substr(0, st.length()-n);