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

1
Abhishek Joshi 18 Апр 2020 в 20:47
2
Возможно, вы ищете std::variant
 – 
Igor Tandetnik
18 Апр 2020 в 21:00

1 ответ

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

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

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

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

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

1
Marshall Clow 18 Апр 2020 в 22:21