J'ai un code python qui contient le code suivant.Traduction du dictionnaire python en 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)]
boucle Malheureusement sur toutes les clés en python est pas vraiment assez rapide pour mon but, et je voudrais traduire ce code C++. Quelle est la meilleure structure de données C++ à utiliser pour un dictionnaire python dont les clés sont des clés? Quel serait l'équivalent C++ du code ci-dessus?
J'ai regardé des matrices éparses dans la bibliothèque d'amplification, mais je n'ai pas trouvé de moyen facile de faire une boucle uniquement sur les éléments non nuls.
Avez-vous envisagé une autre disposition des données. Si (i, j) est toujours associé à (j, i) alors vous n'aurez peut-être pas vraiment besoin des deux. Vous pourriez juste construire l'association au moment où vous construisez le dictionnaire. Vous pouvez simplement stocker une dict de (i, j) dans le magasin d'entrée (d (i, j), d (j, i)). Ceci suppose que les nombres dans le tuple pourraient être arbitrairement ordonnés, ce qui est probablement vrai. –
Aussi, si vous marchez simplement les tuples, stockez-les dans une liste et parcourez la liste. –