gpt4 book ai didi

c++ - 如何有效地清除 C++ 中的堆栈?

转载 作者:行者123 更新时间:2023-12-02 12:17:09 30 4
gpt4 key购买 nike

我有一个名为pages 的c++ 堆栈。由于我没有clear()函数来清除堆栈,所以我编写了以下代码:

stack<string> pages;
//here is some operation
//now clearing the stack
while(!pages.empty())
pages.pop();

现在我的问题:是否有更有效的方法来清除堆栈?

最佳答案

一般来说,您无法在 O(1) 时间内清除复制容器,因为您需要销毁拷贝。可以想象,模板化复制容器可能具有在 O(1) 时间内清除的部分特化,这是由指示所包含对象的类型具有简单析构函数的特征触发的。

如果你想避免循环。

pages=stack<std::string>();

stack<std::string>().swap(pages);

关于c++ - 如何有效地清除 C++ 中的堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40201711/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com