从字符串末尾删除一些字符的更有效方法

时间:2015-06-08 14:03:02

标签: c++ string

我想从字符串中删除最后n个字符。我知道有一个名为pop_back()的方法可以删除最后一个字符。我可以在如下所示的循环中使用它,但它不会感觉有效。

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

想知道是否有更有效的替代品。感谢。

2 个答案:

答案 0 :(得分:5)

std::string::erase正是您要找的。

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

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

但请确保进行适当的边界检查。

答案 1 :(得分:0)

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

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