Tengo el código de Python que contiene el siguiente código.Traduciendo el diccionario de Python a C++
d = {}
d[(0,0)] = 0
d[(1,2)] = 1
d[(2,1)] = 2
d[(2,3)] = 3
d[(3,2)] = 4
for (i,j) in d:
print d[(i,j)], d[(j,i)]
bucle desgracia sobre todas las teclas en Python no es lo suficientemente rápido para mi propósito, y me gustaría traducir el código en C++. ¿Cuál es la mejor estructura de datos de C++ para usar en un diccionario de Python que tiene tuplas como claves? ¿Cuál sería el equivalente en C++ del código anterior?
Miré las matrices dispersas en la biblioteca de impulso, pero no pude encontrar una manera fácil de recorrer solo los elementos distintos de cero.
¿Ha considerado otro diseño de datos. Si (i, j) siempre está emparejado con (j, i), entonces puede que realmente no necesite ambos. Podrías construir la asociación en el momento en que estás construyendo el diccionario. Puede almacenar un dict de (i, j) en el almacén de entrada (d (i, j), d (j, i)). Esto supone que los números en la tupla podrían ordenarse arbitrariamente, lo que probablemente sea cierto. –
Además, si solo está caminando por las tuplas, guárdelas en una lista y recorra la lista. –