【发布时间】:2014-12-29 02:46:13
【问题描述】:
通过qsort_r,我们可以在比较函数中使用外部参数。例如,
int cmp_with_parameter(void *a, void *b, void *p)
{
return (int*)p[*(int*)a] - (int*)p[*(int*b)];
}
int main() {
int values[] = {1,2,3,4};
int arr[] = {0, 1, 2, 3};
qsort_r(arr, 4, sizeof(arr[0]), cmp_with_parameter, values);
}
我们可以按照values[]中的值对int arr[]进行排序。
现在,我想用 std::sort 实现类似的功能,这就是我如何在 std::sort 中使用外部值?先感谢您。
【问题讨论】:
-
阅读函子和/或匿名函数对象(或“lambdas”)。
-
通过引用或其他方便的方式将参数加载到自定义比较器中。