Xan*_*ann 5 c++ stl map multimap
我有这个多图,用于将字符串的汉明距离映射到相应的字符串.
由于两个字符串的汉明距离可能相同,我希望它们按升序排序.但是,当我打印出来时,它没有排序.hamdistArray被声明为无符号类型.
typedef multimap<unsigned, string, less<unsigned> > Check;
Check pairs;
pairs.insert(Check::value_type(hamdistArray[j], d.sortedWordDatabase[j]));
for(Check::const_iterator iter = pairs.begin(); iter != pairs.end(); ++iter)
{
cout << iter->first << '\t' << iter->second<< endl;
}
Run Code Online (Sandbox Code Playgroud)
less 模板函数不是必需的,因为它是默认的。尝试将 Check 声明为不带:
typedef multimap<unsigned, string> Check;
Run Code Online (Sandbox Code Playgroud)
编辑:最好的方法是生成一个哈希键作为 *key_type* 并且值类型可以是std::pair<unsigned, string>