2016-06-11 36 views
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)); 
    ... 
    ... 
} 

在插入值到地圖的時候,我們假設s1abcs2xyz。在查找過程中,關鍵匹配是如何確定的?

分別是s1s2abcxyz分別完成的字符串比較?如果是這樣,那麼std::string比較運算符是否被使用?

謝謝!

回答