gpt4 book ai didi

c++ - 在堆栈中搜索特定元素

转载 作者:太空狗 更新时间:2023-10-29 23:37:13 24 4
gpt4 key购买 nike

我有兴趣移植this Python code到 C++。作为端口的一部分,我正在使用 std::stack来自 <stack> header 。我如何确定某个字符是否包含在 stack<char> 中? ?例如:

std::stack<char> myStack

if (!('y' is included in myStack)) // I know that this is wrong
{
}

最佳答案

C++ stack 不支持随机访问,所以没有直接的方法使用 stack 来检查一个元素是否被包含。但是,您可以复制堆栈,然后不断地从堆栈中弹出,直到找到该元素。

或者,如果您确实需要搜索堆栈,您可以考虑使用支持随机访问的deque。例如,您可以在 deque 上使用 find 算法来搜索元素:

std::find(myDeque.begin(), myDeque.end(), myValue);

如果您需要经常搜索stack,请考虑保留一个并行的std::set 以及存储相同内容的stack元素作为堆栈。这样,您只需使用 set::find 即可(有效地)检查元素是否存在。

希望这对您有所帮助!

关于c++ - 在堆栈中搜索特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918762/

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