J'aime la réponse d'Oli (retourner une carte), mais il semble qu'il y ait un problème: la carte du conteneur n'autorise pas deux éléments avec la même clé.
Une solution est de faire dst le type multimap. Une autre consiste à vider src dans un vecteur et à trier le vecteur. Le premier nécessite des modifications mineures à la réponse d'Oli, et le dernier peut être implémenté en utilisant la copie STL de manière concise
#include <iostream>
#include <utility>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
map<int, int> m;
m[11] = 1;
m[22] = 2;
m[33] = 3;
vector<pair<int, int> > v;
copy(m.begin(),
m.end(),
back_inserter<vector<pair<int, int> > >(v));
for (size_t i = 0; i < v.size(); ++i) {
cout << v[i].first << " , " << v[i].second << "\n";
}
return 0;
};