2009-02-09 7 views
7

Supongamos que tengo dos elementos, a y b, que comparan lo mismo. Entonces, < b es falso, y b < a es falso. Si estos elementos se insertan en un std :: multiset (o std :: multimap) como claves, ¿tengo alguna garantía de su orden final ordenada?En C++, std :: multiset mantiene un orden de clasificación estable?

He revisado un par de referencias, pero no he podido encontrar la respuesta. Estoy tentado de pensar que no hay garantías y que queda en cada implementación en particular.

Gracias.

+0

Posible duplicado de [¿La orden de inserción de la garantía std :: multiset?] (Https://stackoverflow.com/questions/2643473/does-stdmultiset-guarantee-insertion-order) –

Respuesta

9

This thread implica que no está garantizado por el estándar actual, pero se cumple con todas las implementaciones actuales conocidas, y proporciona un enlace al borrador del estándar C++ 0x que incluye una garantía.

+0

Gracias por la respuesta rápida. – Imbue

+5

Para el registro, la garantía de C++ 0x es "insertar en el límite superior". –

+0

Impresionante. Todavía no usamos C++ 11, pero voy a agregar una prueba unitaria a nuestro conjunto de pruebas para garantizar el comportamiento del compilador en las versiones que usamos. – mskfisher

Cuestiones relacionadas