我在C中实现了有向无环图的拓扑排序,输出了拓扑排序列表 .

我看到一些实现,其中排序列表存储在 std::stack 中,一些存储在 std::vector 中 . 我不确定哪种或其他数据结构最适合我的情况 . 基本上,我只需循环遍历此排序列表,并提取从上到下存储的元素 . 在提取过程中不会修改列表 .

使用 std::vector 似乎是浪费时间复杂度,因为每次将新元素添加到列表时我都会重新分配向量 . 这个列表可以变得非常庞大 .

根据How to traverse stack in C++?,我似乎无法循环 std::stack .

还有其他选择更适合我想做的事情吗?