Я реализовал топологическую сортировку ориентированного ациклического графа на C++, которая выводит топологически отсортированный список.
Я вижу некоторые реализации, в которых отсортированный список хранится в std::stack
, а некоторые в std::vector
. Я не уверен, какая или какая-либо другая структура данных будет наиболее подходящей для моего случая. По сути, мне просто нужно пройтись по этому отсортированному списку и извлечь элементы, хранящиеся сверху вниз. Список не изменяется в процессе извлечения.
Использование std::vector
кажется пустой тратой времени, поскольку я буду перераспределять вектор каждый раз, когда в список добавляется новый элемент. Этот список может стать довольно большим.
Кажется, я не могу перебрать std::stack
в соответствии с Как пройти через стек в C++?.
Есть ли другой вариант, который был бы более подходящим для того, что я хочу сделать?
vector
с помощьюreserve
. - person Mike Borkland   schedule 08.12.2018