2009-02-09 11 views
7

Załóżmy, że mam dwie pozycje, aib, które porównać to samo. Tak więc < b jest fałszywe, a b < a jest fałszywe. Jeśli te elementy są wstawiane do std :: multiset (lub std :: multimap) jako klucze, czy mam jakieś gwarancje ich ostatecznego posortowanego zamówienia?W C++ czy std :: multiset utrzymuje stabilną kolejność sortowania?

Sprawdziłem kilka referencji, ale nie mogłem znaleźć odpowiedzi. Kusi mnie, by myśleć, że nie ma żadnych gwarancji i że jest to zależne od każdej konkretnej implementacji.

Dzięki.

+0

Możliwy duplikat zamówienia [Czy std :: multiset gwarantuje zamówienie reklamowe?] (Https://stackoverflow.com/questions/2643473/does-stdmultiset-guarantee-insertion-order) –

Odpowiedz

9

This thread oznacza, że ​​nie jest gwarantowany przez aktualny standard, ale jest spełniony przez wszystkie znane aktualne implementacje i podaje link do standardu draftowego C++ 0x, który zawiera gwarancję.

+0

Dzięki za szybką odpowiedź. – Imbue

+5

Dla rekordu, gwarancja C++ 0x to "wstaw przy górnej granicy". –

+0

Awesome. Nie używamy jeszcze C++ 11, ale zamierzam dodać test jednostkowy do naszego zestawu testów, aby zapewnić zachowanie kompilatora w używanych przez nas wersjach. – mskfisher

Powiązane problemy