C++ STL pop 不返回

标签 c++ stl

<分区>

我有过这样的经历,STL pop 函数不返回任何东西。

如何返回栈顶元素并将其删除?

top 函数不是一个好的解决方案,因为它只返回顶部元素的引用...

最佳答案

如果弹出后不再需要该元素

// use element with
container.top();
// remove it
container.pop();

否则复制对象:

Element e = container.top();
container.pop(); // remove it
// feel free to use e, you made a copy of it

如果您真的需要手动删除它,那么您没有使用任何类型的智能指针,这会将问题转移到另一个主题。

关于C++ STL pop 不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552830/

相关文章:

c++ - for range 循环如何推断普通数组大小

c++ - std::valarray 和 std::array 有什么区别

c++ - 如何创建可以参数化的哈希函数?

c++ - STL - 复制混合容器

c++ - 启用 boost::lexical_cast 以针对小于双范围的值抛出超出范围的错误

c++ - Windows 上 C++ 中非常不同的 I/O 性能

c++ - 两个线程之间的同步队列

c++ - 成员函数中 std::vector c++ size() 内部循环的性能

C++ 判断一个容器是否有::find()

c++ - 无效使用不完整类型 'class …' STL vector