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#。