0

我想了解如何在地图中查找 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));
    ...
    ...
}

在向映射中插入值时,假设s1isabcs2is xyz。在查找期间,如何确定键匹配?

是否分别对和分别进行字符串比较s1s2完成?如果是这样,是否使用了比较运算符?abcxyzstd::string

谢谢!

4

1 回答 1

0

我写了代码来测试一下。测试表明字符串确实是使用定义的比较运算符单独比较的。

该文件讨论了类似的内容: http ://en.cppreference.com/w/cpp/utility/tuple/operator_cmp

于 2016-06-30T13:12:49.967 回答