Стек - отдельный самостоятельный тип данных в теории программирования, никак не связанный с массивами. Внутри конкретной реализации стека в конкретной библиотеке могут использоваться массивы. А могут не использоваться. Но это не сам стек, а особенности данной реализации стека.
Вообще-то в C++ есть встроенный тип данных стек:
https://learn.microsoft.com/ru-ru/cpp/standard-library/stack-class Собственная реализация стека может быть сделана на базе динамического массива:
https://learn.microsoft.com/ru-ru/cpp/standard-library/vector-class , на базе двусторонней очереди:
https://learn.microsoft.com/ru-ru/cpp/standard-library/deque-class или на базе линейного списка:
https://learn.microsoft.com/ru-ru/cpp/standard-library/list-class