ral*_*aul 5 c++ string erase c++11
std::string pop_back() :删除字符串的最后一个元素
在C++规范中,据说C++ 11字符串类函数pop_back具有恒定的时间复杂度.
(更确切地说 - 未指定但通常不变)
http://www.cplusplus.com/reference/string/string/pop_back/
除此之外,我阅读了C++ 11规范的草案,据说它pop_back等于str.erase(str.length() -1).据我所知,擦除功能只需分配一个新的内存量,并将剩余的元素(未删除)复制到此内存中,这将占用线性时间.鉴于此,pop_back如何在恒定时间内完成.
Tim*_*mbo 10
它不必重新分配.
该函数可能只是用零覆盖最后一个字符并减少一些长度信息.