【发布时间】:2018-10-08 13:58:25
【问题描述】:
我有一个用例,我将向量中的所有元素映射到映射(哈希表)中的值。我现在想使用存储在地图中的这些值对向量进行排序。
static map<string, string> canonForm;
static bool myfunction(string a, string b){
return (canonForm[a] < canonForm[b]);
}
编辑:例如,在这里,canonForm 将为我的向量中的每个字符串(键)保存字符串(值)。上面的 sn-p 包含一个我想用作比较器来对字符串向量进行排序的函数。 我将如何实施呢?上面的sn -p在编译的时候会弹出一个错误。
如果我可以进一步改进问题,请告诉我
【问题讨论】:
-
问题是什么?您应该可以在向量上调用
sort并将其传递给myfunction -
还要注意
std::map是一个二叉搜索树,没有哈希映射(如果你需要不断查找,你应该检查std::unordered_map)