2010-07-16 5 views
0

J'utilise l'API STL C++ pour Berkeley DB 4.8, et je suis capable d'utiliser l'extraction groupée pour un constator db_map ou db_multimap créé en utilisant begin(), mais pas un créé à partir de find() (ou lower_bound() pour les multimappels). J'apprécie l'utilisation aléatoire de find() serait un gaspillage d'utiliser la récupération en masse, mais je veux accéder à de nombreux enregistrements dans l'ordre Btree de mon point de trouver(), donc la récupération en vrac m'aiderait. L'API C++ sous-jacente semble l'autoriser, est-ce possible à partir de l'API STl?Lecture en bloc avec Berkeley DB, interface STL C++

Répondre

0

J'ai trouvé une solution à moi-même:

Vous devez surcharger la méthode lower_bound de const_iterator() pour inclure un argument BulkRetrievalOption juste comme commencer(). Ceci créera en interne l'instance d'interator en utilisant cet argument de la même manière que begin() mais ensuite déplace l'itérateur vers la borne inférieure de la valeur de clé fournie.

Idem s'appliquera à un db_map :: find

Questions connexes