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


我想确定是否可以在向量ourstack中找到堆栈visitable中的顶部字符。如果是,我希望将此字符从visitable删除。

我该如何编码?我知道矢量使用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 ++库不使用camelCased标识符,它看起来更像Java或C#。

09-07 03:40