J'ai un stl unordered_map et je voudrais stocker des références aux éléments dans cette carte. Je voudrais qu'il n'y ait pas de références en double. Je pensais pouvoir créer un ensemble d'itérateurs qui pointaient vers des éléments. Pour un je n'étais pas sûr qu'il reconnaîtrait, mais même ainsi j'ai eu de longues erreurs de modèle qui se résument à l'absence d'opérateur de comparaison < pour les itérateurs.Ensemble STL d'itérateurs de carte
J'ai ensuite essayé une compilation non ordonnée avec g ++ -std = C++ 0x mais j'ai obtenu des pages d'erreurs.
Comment puis-je atteindre cet objectif?
#include <set>
#include <unordered_map>
#include <unordered_set>
int main() {
typedef std::unordered_map<int, float> umap;
umap my_map;
umap::const_iterator itr;
for (int i=0;i<10000000;i++) {
my_map[i] = float(i);
}
umap::iterator my_it1 = my_map.find(43);
umap::iterator my_it2 = my_map.find(44);
umap::iterator my_it3 = my_map.find(44);
std::unordered_set<umap::iterator> my_its;
my_its.insert(my_it1);
my_its.insert(my_it2);
my_its.insert(my_it3);
return 0;
}
Très bien compilé. Venir à y penser. Il y a beaucoup d'algorithmes d'ensemble utiles comme l'intersection que je peux utiliser directement et simplement avec un ensemble normal. Y a-t-il une fonction de comparaison arbitraire que je peux mettre en œuvre pour que je puisse les utiliser sans me préoccuper de la commande? – zenna