std::stack по умолчанию основан на std::deque. std::queue по умолчанию также основан на std::deque.
Можно использовать и другие контейнеры:
std::stack может быть основан на std::vector или std::list.std::queue может быть основан на std::list.Необходимое условие для базового контейнера: поддержка операций добавления и удаления элементов с одного или обоих концов (для stack - только с одного, для queue - с разных).
Примеры использования с другими контейнерами:
cpp