Jak mogę wydrukować zawartość std :: stack i zwrócić jej rozmiar?

W c ++ jak mogę wydrukować zawartość mojego stosu i zwrócić jego rozmiar?

std::stack<int>  values;
values.push(1);
values.push(2);
values.push(3);

// How do I print the stack?