Итак, я играл с недавно стандартизированным unordered_map
из STL. Код, который у меня есть, примерно такой: я просто создаю unordered_map, заполняю его и распечатываю:
unordered_map<int,string> m1;
m1[5]="lamb";
m1[2]="had";
m1[3]="a";
m1[1]="mary";
m1[4]="little";
m1[7]="fleece";
m1[6]="whose";
m1[10]="fleecey";
m1[8]="was";
m1[9]="all";
for(unordered_map<int,string>::const_iterator i = m1.begin(); i != m1.end(); ++i)
cout<<i->first<<" "<<i->second<<endl;
Однако получаемый мной вывод упорядочен следующим образом:
1 mary
2 had
3 a
4 little
5 lamb
6 whose
7 fleece
8 was
9 all
10 fleecey
Но я не хочу платить цену заказать мою карту! Вот почему я использую unordered_map ... Что здесь происходит?
дополнительное примечание: я использую gcc версии 4.3.4 20090804 (выпуск) 1 (GCC)
и собираю вот так g ++ -std = c ++ 0X maptest.cpp