字符串erase(pos,len)函数的文档没有非常明确地指定如果pos
恰好是字符串的“最后一个”,则将发生什么。它仅暗示不禁止这样做,而没有特别提及此特殊情况的含义。
实际上,str.erase(str.size())
不会引发异常。
在这种情况下真正应该发生什么?这似乎没有在任何地方明确提及。
最佳答案
不是那种“特殊情况”。
与str.erase(0,0);
一样不会执行任何操作。 str.erase(str.size());
告诉它从头到尾删除所有字符。不会抹去任何东西。
关于c++ - 当调用 “pos”等于字符串长度的str.erase时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15050850/