【发布时间】:2018-09-07 20:26:31
【问题描述】:
我不明白自定义比较器在 C++ 中的工作原理。幕后究竟发生了什么?
假设我们的比较器 comp(x,y) 有两个参数 x 和 y
我们使用这个比较器函数来假设一个向量vector<int> v (size) 类似于std::sort() 或priority_queue。
在运行时传递给comp() 的数组元素是按什么顺序排列的...是不是这样-->
comp(v[0],v[1])
comp(v[1],v[2])
对于任何类型的自定义比较,规则是什么?听说过弱排序的概念,谁能解释清楚一点吗?
【问题讨论】:
-
这对en.cppreference.com/w/cpp/concept/Compare有帮助吗?你指的是没有两个参数切换可以返回
true(例如comp(a,a)需要返回false,如果comp(a,b)返回true那么comp(b,a)必须返回false)?跨度> -
@Tas 抱歉,我已经编辑了函数的使用。我的意思是向量或数据结构中元素的顺序——它们是如何输入比较器的。
标签: c++ stl comparator