Como posso imprimir o conteúdo de std :: stack e retornar seu tamanho?

Em c ++, como posso imprimir o conteúdo da minha pilha e retornar seu tamanho?

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

// How do I print the stack?

questionAnswers(4)

yourAnswerToTheQuestion