Estoy buscando una función en C++ que para intercambiar los contenidos de un mapa ... que es: aquellos que eran las claves ahora se convierten en los elementos y aquellos que los artículos eran ahora las llaves. ¿Me puede decir si hay algo sobre esto?Intercambiando claves y valores de un mapa en C++
Respuesta
Como dijo Geoffroy, std::map
no permite este comportamiento. Sin embargo, es posible que desee utilizar un contenedor de tipo STL Boost.Bimap - mapa bidireccional.
Un Bimap es una estructura de datos que representa las relaciones bidireccionales entre los elementos de dos colecciones. El contenedor está diseñado para funcionar como dos mapas STL opuestos. Un bimap entre una colección X y una colección Y se puede ver como un mapa de X a Y (esta vista se llamará vista de mapa izquierda) o como un mapa de Y a X (conocida como la vista de mapa correcta).
No hay un método/forma estándar para hacer esto, tiene que escribir su propia función.
No es algo muy difícil de hacer, pero primero piense en hacerlo de otra manera.
Si tiene que invertir sus claves/valores, entonces su código puede estar mal, aunque no mantenga la lógica del contenedor.
Si desea obtener más información, explique por qué desea hacer esto.
Creo que impulsar tiene un adaptador de iterador que podría hacer esto fácil –
Sí, tal vez, no sé mucho sobre impulso por el momento . Pero no es muy difícil de hacer. – Geoffroy
Tengo que leer un archivo que tomó la cadena de Id. De fila. Necesito para mis algoritmos que este valor sea un número entero (por razones de eficiencia y no una cadena) use un mapa para asociar con estas cadenas una identificación única. En el mapa, entonces intID-string. Necesito tener los resultados de mi algoritmo en mi id-cadena de formato antiguo, así que tengo, para cada cadena de búsqueda IdInt en todos los valores correspondientes del mapa. Para acelerar esto puede hacer un intercambio – Safari
Primero inserte los elementos en el mapa en un multimap - valor, segundo clave, con la función de comparación adecuada que compara dos valores del mapa original. Una vez que se insertan todos los elementos de valor clave, el multimapa se ordenará según lo previsto. ¡Trabajo hecho!
template <class T1, class T2>
map<T2, T1> swapPairs(map<T1, T2> m) {
map<T2, T1> m1;
for (auto&& item : m) {
m1.emplace(item.second, item.first);
}
return m1;
};
int main() {
map<string, int> m;
m.emplace("111",5);
cout << m.at("111") << endl; // 5
map<int,string> m1 = swapPairs(m);
cout << m1.at(5) << endl; // 111
return 0;
}
- 1. Cómo intercambiar claves y valores en un Mapa elegantemente
- 2. Intercambiando valores de columna en MySQL
- 3. Intercambio de claves y valores en un hash
- 4. Mapa de claves múltiples en C++
- 5. Selección de claves y valores aleatorios conjuntos de un mapa en Java
- 6. ¿Cómo devuelvo un mapa de clojure con claves fijas y valores condicionales?
- 7. Intercambiando valores de matriz con for y yield scala
- 8. Genéricos: cómo hacer cumplir las restricciones entre claves y valores en un mapa
- 9. fusionar dos matrices (claves y valores) en un objeto
- 10. Obtener valores de claves dentro de un rango en Java
- 11. Intercambiando elementos en un NSMutableArray
- 12. Dissoc varias claves descendientes de un mapa?
- 13. dividir un diccionario en python en claves y valores
- 14. cambiar las claves y valores en un diccionario en Python
- 15. ¿Cómo eliminar varias claves de un mapa?
- 16. mapa de Java con claves duplicadas
- 17. ¿Se ordenan las claves y valores en un NSDictionary?
- 18. Mapa bidireccional de valores múltiples en Java
- 19. ¿Eliminar valores nulos de un mapa?
- 20. ¿Cómo recuperar todas las claves (o valores) de un std :: map y ponerlas en un vector?
- 21. Cómo restar una lista de claves de mapa de otra y obtener un mapa nuevo (mapa A - mab B = mapa C)
- 22. Claves/valores de registro ocultos
- 23. ¿Cómo puedo ordenar las claves de un mapa en Java?
- 24. ¿Cuál es la mejor forma de obtener un mapa de la lista de claves/valores en groovy?
- 25. Claves compuestas MySql y valores nulos
- 26. array_walk_recursive - modificar las claves y los valores
- 27. tupla a dict: una de las claves y valores múltiples
- 28. Actualice los valores de varias claves
- 29. obteniendo todas las claves para un mapa como $ _POST
- 30. claves de matriz PHP valores
Es posible que desee hacer esto para multimaps, ya que los valores en un mapa no son necesariamente distintos. –
Estoy seguro de que los valores de mi mapa son todos únicos: No hay duplicado – Safari