为什么pop_back()没有返回值?我对此进行了谷歌搜索,发现它使其更有效。这是在标准中这样做的唯一原因吗?

最佳答案

我认为有一个事实与事实有关,即复制最后一个对象的实例可能会引发异常。这样做时,您将丢失对象,因为pop_back()确实将其从容器中删除了。用几行代码更好:

std::vector<AnyClass> holds = {...} ;
try {
  const AnyClass result = holds.pop_back(); // The copy Ctor throw here!
} catch (...)
{
 // Last value lost here.
}

关于c++ - pop_back()返回值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12600330/

10-12 20:39