O contêiner map, tipicamente implementado como árvore de bus...
#include <cstdio> #include <map> #include <string> using namespace std; int main() { map<string, int> mapper; mapper["fulano"] = 78; mapper["ciclano"] = 69; mapper["beltrano"] = 80; mapper["ciclano"] = 21; mapper["geronimo"] = 77; mapper["anonimo"] = 82; for ( map<string, int>::iterator it = mapper.lower_bound("b"); it != mapper.upper_bound("g"); it++) printf( "(%s %d)", ((string)it->first).c_str(), it->second); return 0; }
A saída do código C++ acima é