Copiar std :: mapa en std :: vector de pares

Estoy tratando de copiar un mapa en un vector de pares, para poder ordenar el vector porsecond miembro de datos de los pares. He resuelto esto haciendo esto:

void mappedWordsListSorter(){
  for (auto itr = mappedWordsList.begin(); itr != mappedWordsList.end(); ++itr){
    vectorWordsList.push_back(*itr);
  }
  sort(vectorWordsList.begin(), vectorWordsList.end(), [=](pair<string, int>& a, pair<string, int>& b){return a.second > b.second;});
}

Necesito encontrar una manera de hacer esto sin usar un bucle sin procesar, usando la biblioteca estándar en su lugar. Me he encontrado con muchos ejemplos haciendo esto solo transfiriendo las claves o los valores del mapa. Necesito copiar en un vector depairs<string, int>. ¿Cuál es la mejor manera de hacerlo

Respuestas a la pregunta(3)

Su respuesta a la pregunta