std :: vector против std :: stack

В чем разница между std::vector а также std::stack?

Очевидно, что векторы могут удалять элементы в коллекции (хотя и намного медленнее, чем списки), тогда как стек создается как коллекция только для LIFO.

Тем не менее, стеки быстрее для манипулирования конечными элементами? Это связанный список или динамически перераспределенный массив?

Я не могу найти много информации о стеках, но если я правильно их представляю (они похожи на реальный стек потоков, push, pop и т. Д. — вместе с этим top() метод), то они кажутся идеальными для управления укладкой окон.

14

Решение

stack не является контейнером; это контейнер адаптер. Оно имеет vector, deque или подобный контейнер, который он хранит как элемент, который фактически содержит элементы. Помните: это объявлено как:

template<
class T,
class Container = std::deque<T>
> class stack;

Все stack делает это ограничить пользовательский интерфейс для этого внутреннего контейнера. Характеристики производительности операций в точности соответствуют характеристикам базового контейнера.

31

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]