¿Cómo puedo imprimir el contenido de std :: stack y devolver su tamaño?

En c ++, ¿cómo puedo imprimir el contenido de mi pila y devolver su tamaño?

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

// How do I print the stack?