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

pac*_*tie 1 c++ string

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

string st("hello world");
for (i=0; i<n; i++) {
    st.pop_back();
}
Run Code Online (Sandbox Code Playgroud)

不知道是否有更有效的替代方案.谢谢.

dwc*_*las 5

std::string::erase 是你在找什么.

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

st.erase(st.length()-n);
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢@dwcanillas,我猜你的意思是“st.erase(st.length() - n)”:-) (2认同)