0
boost :: tupleの形式のキーがマップ内でどのように検索されているかを知りたい場合は、Compare=std::less
です。例えば、これは私が働いているコードの抜粋です:boost :: tupleをキーとして使用したマップ検索
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
比較演算子が使用されていますか?
ありがとうございます!