Я предполагаю, что вы пытаетесь эмулировать машину, основанную на стеке?
Вот единственный способ сделать это с помощью std :: stack:
stack<int> st;
st.push(10);
st.push(20);
int top = st.top(); // return 20
st.pop();
int second = st.top(); // return 10
st.push(top);
Если вам нужно другое поведениевам придется сделать собственную реализацию stack
, которая имеет больше возможностей.