boost::tuple の形式のキーがマップでどのように検索されるかを理解したいと思いますCompare=std::less
。たとえば、これは私が取り組んでいるコードのスニペットです。
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
isabc
とs2
isとしxyz
ます。ルックアップ中に、キーの一致はどのように決定されますか?
と の文字列比較はs1
、と でそれぞれ個別にs2
行われますか? その場合、比較演算子は使用されていますか?abc
xyz
std::string
ありがとう!