Me pregunto si esto es cierto? Si lo es, ¿este comportamiento está garantizado por el estándar de C++?Will std :: multimap conservará el orden de inserción si la clave de 2 elementos es igual a la otra?
Will std :: multimap conservará el orden de inserción si la clave de 2 elementos es igual a la otra?
Respuesta
Los elementos en un std::map
deben tener claves únicas, entonces ... no.
El contenedor std::multimap
permite asignar valores múltiples a una clave. Al iterar sobre un std::multimap
, los elementos se ordenan por clave, pero no se especifica el orden de los elementos que tienen la misma clave.
Tenga en cuenta que en el último borrador de la futura norma C++ 0x (N3092), el orden relativo de los elementos con la misma clave es garantizado (por lo que, en algún momento, usted será capaz de confiar en este comportamiento).
Gracias. Me refiero a multimap en mi publicación anterior. – Thomson
esta afirmación parece diferente de la última propuesta de nuevo estándar que tengo (pero tiene 21 meses (N2798 = 08-0308)) Cito: Para multisese y multimapa, inserte y borre preservar el orden relativo del equivalente elementos. página 768 Si existe un rango que contiene elementos equivalentes a t en a_eq, t se inserta al final de ese rango. página 771 – pgast
@pgast: Muy interesante. Ese lenguaje está en C++ 0x FCD (N3092). Sin embargo, no es el caso en el estándar actual de C++ (C++ 03) que se mantiene el orden relativo. Gracias por señalar ese cambio. –
- 1. Agregar valores de matriz a std :: multimap
- 2. ¿Cómo iterar sobre Multimap en el orden de inserción?
- 3. Python equivalente a std :: set y std :: multimap
- 4. Clojure macro que conservará la orden de asignación asociativa
- 5. usando boost multi_index_container para conservar la orden de inserción
- 6. si la tercera letra es igual a
- 7. ¿Está garantizado el orden de clave de NSDictionary igual que el inicializado si nunca cambia?
- 8. Java - Si la instrucción A es igual a B más o menos 2
- 9. std :: multimap obteniendo dos rangos
- 10. Obteniendo los elementos `std :: priority_queue` en orden inverso?
- 11. Will jQuery seleccionar elementos ocultos
- 12. ¿Cuál es el orden de los elementos de limpieza de std :: list?
- 13. ¿La colección genérica de pares clave/valor preserva la orden de inserción?
- 14. ¿std :: sort cambia el orden relativo de elementos iguales?
- 15. Establecer el orden de inserción de preservación de la colección
- 16. C++ invalidación de iterador multimap
- 17. Sqlite3: ¿Desactivar el índice de clave principal durante la inserción?
- 18. La clase A no es igual a la clase A
- 19. ¿Un bucle allocator.construct es igual a std :: uninitialized_copy?
- 20. En C++, std :: multiset mantiene un orden de clasificación estable?
- 21. ¿Cuál es la ventaja de multimap sobre el mapa de vectores?
- 22. Compruebe si ID es igual a
- 23. php no es igual a no es igual, igual a
- 24. Inserción de cadena en la posición x de otra cadena
- 25. Orden de destrucción de elementos de un std :: vector
- 26. Implementación de la utilización de orden de inserción java.util.Map como orden
- 27. Punteros a elementos de std :: vector y std :: list
- 28. campo del modelo Validar: si el valor es igual a una clave en un hash
- 29. ¿La inserción es óptima?
- 30. A std :: map que realiza un seguimiento del orden de inserción?
Duplicado de [¿std :: multiset garantiza la orden de inserción?] (Http://stackoverflow.com/questions/2643473/does-stdmultiset-guarantee-insertion-order) –