-2

我正在尝试从头文件中实现一个堆栈类。我使用 3 个文件——stack.h、stack.cpp 和 main.cpp 编写了它。

为了找到一个元素,我在 stack.cpp 中使用了以下代码。

bool stack::find (const string &elem) const
{
    vector<string>::const_iterator it = _stack.begin();
    return ::find(it,_stack.end(),elem))!=_stack.end();
}

但是, find 一直返回 false 。我每次都收到“找不到单词”。你能帮我解决这个问题吗?

这是代码的 pastebin 链接:PasteBin Link

4

1 回答 1

1

如果您正在进行迭代查找,则堆栈不是您要使用的数据结构。堆栈的要点是您必须弹出元素才能访问它们。如果您在搜索中遍历所有元素,则保留堆栈状态的唯一方法是将所有元素保存在单独的容器中,并在搜索完成后将它们推回堆栈。如果你这样做,为什么不直接使用像 std::vector 这样的随机访问容器呢?

所以你的问题的答案是:不要那样做,我们是一个不同的容器。

于 2012-09-09T07:37:47.330 回答