gpt4 book ai didi

C++在不知道位置的情况下删除 vector 中的特定值

转载 作者:行者123 更新时间:2023-11-27 23:23:55 26 4
gpt4 key购买 nike

if (find(visitable.begin(), visitable.end(), ourstack.returnTop())) { ... }

我想判断栈顶字符是否ourstack可以在 vector 中找到 visitable .如果是,我希望从 visitable 中删除此字符.

我将如何编写代码?我知道 vector 使用 erase ,但这需要该字符的具体位置(我不知道)。

这是给我的 maze-path-finding assignment .

此外,我的 returnTop给我一个错误:class "std.stack<char..." has no member returnTop .我在程序的顶部声明了#include。这里发生了什么?

提前致谢!

最佳答案

如果您正在使用find,那么您已经知道了字符的位置。 find 将迭代器返回到找到字符的位置,如果找不到则返回用作结尾的值。

vector<?>::const_iterator iter =
find(visitable.begin(), visitable.end(), ourstack.top());
if( iter != visitable.end() )
{
visitable.erase( iter );
}

关于stack,你要找的函数是top()。标准 C++ 库不使用驼峰式标识符,这看起来更像是 Java 或 C# 的东西。

关于C++在不知道位置的情况下删除 vector 中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770336/

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