Почему мой unordered_map упорядочивается сам?

Итак, я играл с недавно стандартизированным 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

8
задан Jimmy 29 July 2011 в 23:45
поделиться