Je voudrais comprendre comment une clé sous la forme de boost :: tuple est recherchée dans la carte, où Compare=std::less
. Par exemple, voici l'extrait du code, je travaille sur:Recherche de carte en utilisant boost :: tuple comme clé
typedef boost::tuple<std::string, std::string> Key;
void *Data;
typedef std::map<Key, Data> FileDataMap;
FileDataMap file_map;
lookup_data(std::string s1, std::string s2)
{
...
fk = boost::make_tuple(s1, s2);
FileDataMap::iterator itr = file_map.find(fk);
...
...
}
insert_data(std::string s1, std::string s2, void *fdata)
{
...
fk = boost::make_tuple(s1, s2);
file_map.insert(std::make_pair(fk, fdata));
...
...
}
Au moment d'insérer une valeur dans la carte, supposons que s1
est abc
et s2
est xyz
. Pendant la recherche, comment la correspondance de clé est-elle déterminée?
est une comparaison de chaîne de s1
et s2
fait avec abc
et xyz
respectivement, individuellement? Si oui, les opérateurs de comparaison std::string
sont-ils utilisés?
Merci!