【发布时间】:2011-03-02 13:34:30
【问题描述】:
我构建了这个多重映射来将字符串的汉明距离映射到其对应的字符串。
由于两个字符串的汉明距离可能相同,我希望它们按升序排序。但是,当我打印出来时,它没有排序。 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;
}
【问题讨论】:
-
Check是这种类型的愚蠢名称。 -
我看不出您发布的代码是一个测试用例,因为您只插入一个值。
-
@Tomalak Geret'kal 代码在 for 循环中,因此是“j”。之所以选择 Check,是因为它根据其汉明距离与数据库的接近程度来纠正字符串。
-
那么请在您的测试用例中包含循环。
Check是一个愚蠢的名字:类型没有更正任何东西;它是一个类型,而不是一个过程。它是一种数据存储类型的名称,而不是变异数据的算法。 -
@Tomalak Geret'kal:感谢您的洞察力。我为这种类型选择的名称对您来说可能没有意义。我希望它不会妨碍您帮助我回答我的问题的能力。 :)