Bonjour.
Je stocke des (cléf/valeur)s dans une std::map. J'ai un traitement qui s'intéresse à une clef et à ses voisines.
Je cherche le meilleur moyen de récupérer un itérateur sur des clefs voisines sans avoir à faire un map->find() pour chaque voisine.
Je pensais pouvoir faire une recherche en spécifiant une plage, par exemple :
Si la recherche est dochotomique cela peut faire gagner un peu de temps. Mais je ne trouve pas de fonction qui permette de faire ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int clef_triees[7] = {4, 6, 13, 16, 18, 24, 40}; // je dispose d'un iterateur initial sur la clef 16 : it_init it_13 = map->find(13, map->begin(), it_init - 1); it_6 = map->find(6, map->begin(), it_13 - 1); it_4 = map->find(4, map->begin(), it_6 - 1); it_18 = map->find(18, it_init + 1, map->end()); it_24 = map->find(24,it_18 + 1, map->end()); it_40 = map->find(40, it_24 + 1, map->end());
Je me demande si c'est utile de vouloir optimiser cela, et si oui comment le faire ?
Partager