我目前正在使用以下代码来修正std::strings程序中的所有内容:
std::string s;
s.erase(s.find_last_not_of(" \n\r\t")+1);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我想知道是否有一些可能会失败的最终案例?
当然,欢迎使用优雅替代品和左侧解决方案的答案.
在C++ Primer第四版中,由Stanley B.Lippman,Josee Lajoie和Barbara E. Moo表示:
因为向量有效增长,所以通常最好通过在元素值已知时动态地向其添加元素来让向量增长.
和
习惯于使用c或java的读者可能期望因为向量元素是连续存储的,所以最好以预期的大小预先分配向量.事实恰恰相反......
和
尽管我们可以在向量中预先分配给定数量的元素,但定义空向量并向其添加元素通常更有效.
假设这是正确的(作者和他们一样有信誉,一个是C++本身的共同作者)那么任何人都可以给我一个证明这个陈述的案例,并解释原因吗?