No, there is no such way. The idea behind std::stack
(and similar adaptors) is that you will only use the stack interface. And a generic stack only allows inspection of the top element.
So technically, you don't want a "stack," you want an "iterable stack." And the standard library does not provide a container/adaptor for that, so you'll have to resort to one of
implementing your own
using a plain container and maintaining the stack-like access manually
Side note: I really wish the adaptors actually provided iteration functionality; after all, they're only adaptors, so they are guaranteed to be backed by an appropriate container (or they could at least provide iteration as long as the backing container does). But it's not currently part of the standard.