c++ - 我需要一个类似于堆栈但具有随机访问功能的数据结构,但是我应该实现什么?

标签 c++ algorithm data-structures stl stack

我正在尝试实现 Tarjan 的强连通分量算法,但是我遇到了困难,因为 psuedo-code (第 17 页)要求我搜索堆栈,但我知道堆栈不提供随机访问功能。我个人认为这不是一个合适的伪代码,因为它们使用了错误的数据结构。您能否建议我使用替代伪代码或替代数据结构?

最佳答案

Stack 是一个容器适配器,在集线器下(默认情况下)它使用 vector。如果愿意,它也可以使用 dequelist

这意味着vector 提供了执行堆栈操作所需的所有功能。 vector 使用 RandomAccessIterator
这同样适用于 deque

list 使用 BidirectionalIterator 并且不符合您的需求。

我的建议是使用 vector 来完成您的任务。

关于c++ - 我需要一个类似于堆栈但具有随机访问功能的数据结构,但是我应该实现什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367426/

相关文章:

c++ - 使用 C++ 插件调用 Require

c++ - strftime 性能与 snprintf

c++ - 无法访问模板函数内的迭代器

c# - 在 C# 中为信息检索应用程序编写倒排索引

java - 如何避免在列表迭代中使用 get(0)

c - 二叉树的根到节点的距离

c++ - 将数组写入 IStream

c++ - 快速插入和快速搜索的正确数据结构?

javascript - Heap 算法演练

php - 是否有任何 PHP 函数可以通过不区分大小写的比较来解决另一个数组值字符串中的数组值匹配?