Я хотел бы понять, как ключ в форме boost :: tuple просматривается на карте, где Compare=std::less
. Например, это фрагмент кода я работаю над:Поиск карты с использованием boost :: tuple as key
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));
...
...
}
В момент вставки значения в карте, давайте предположим, что s1
является abc
и s2
является xyz
. Во время поиска определяется, как определяется ключевое совпадение?
ли сравнение строк из s1
и s2
сделано с abc
и xyz
соответственно, в индивидуальном порядке? Если да, используются ли операторы сравнения std::string
?
Спасибо!