Есть ли способ создать стек через STL, который содержит элементы более чем одного типа данных? - PullRequest
1 голос
/ 18 апреля 2020

Есть ли способ создать стек через STL, который содержит элементы более чем одного типа данных? Например, я хочу создать стек, который принимает целое и символьное значение.

1 Ответ

1 голос
/ 18 апреля 2020

Все контейнеры STL содержат элементы только одного типа.

Однако есть два способа, которыми это требование может быть ослаблено.

Первый - через контейнер указателей, где типы связаны через наследование. Это не подходит для того, что вы просите здесь.

Второй (как сказал выше Игорь) использовать std::variant для создания нового типа, который может содержать различные типы внутри себя.

Итак, для вашего примера, вы можете сделать std::stack<std::variant<int, char>>.

...