Existe um objeto de função C ++ padrão para desmontar um std :: pair?

Alguém sabe se existe um objeto de função C ++ padrão (isto é, TR1 ou Boost) de fato para acessar os elementos de um std :: pair? Duas vezes nas últimas 24 horas, desejei ter algo como okeys função para hashes Perl. Por exemplo, seria bom executar std :: transform em um objeto std :: map e despejar todas as chaves (ou valores) em outro contêiner. Eu certamente poderia escrever um objeto dessa função, mas prefiro reutilizar algo que tenha muitos olhos nele.

questionAnswers(6)

yourAnswerToTheQuestion