2009-02-09 11 views
7

Supponiamo di avere due elementi, aeb, che confrontano lo stesso. Quindi un < b è falso, e b < a è falso. Se questi elementi sono inseriti in uno std :: multiset (o std :: multimap) come chiavi, ho qualche garanzia del loro ordine ordinato finale?In C++ std :: multiset mantiene un ordinamento stabile?

Ho controllato un paio di riferimenti, ma non ho trovato la risposta. Sono tentato di pensare che non ci siano garanzie e che sia lasciato a ogni particolare implementazione.

Grazie.

+0

Possibile duplicato di [Fa std :: ordine di inserimento garanzia multiset?] (Https://stackoverflow.com/questions/2643473/does-stdmultiset-guarantee-insertion-order) –

risposta

9

This thread implica che non è garantito dallo standard corrente ma è soddisfatto da tutte le implementazioni correnti note e fornisce un collegamento allo standard di bozza di C++ 0x che include una garanzia.

+0

Grazie per la risposta rapida. – Imbue

+5

Per la registrazione, la garanzia C++ 0x è "insert at upper bound". –

+0

Fantastico. Non stiamo ancora utilizzando C++ 11, ma aggiungerò un test unitario alla nostra suite di test per garantire il comportamento del compilatore tra le versioni che usiamo. – mskfisher

Problemi correlati