【发布时间】:2011-07-22 17:36:07
【问题描述】:
在 C++ 中,我不太了解如何通过定义自定义函数对元素进行排序。
Cppreference.com 说对于比较功能:
comp - 比较函数,如果第一个参数返回真 小于秒。
bool cmp(const Type1 &a, const Type2 &b);
我自然会认为,对于排序元素,我需要定义一个度量,排序函数会根据度量对它们进行排序。
在我的实际示例中,我想根据图像文件与相机的距离对图像文件进行排序。我有一个 boost::filesystem::path 向量链接到图像序列的目录
vector<boost::filesystem::path> path_vec
我自然会认为我需要写一个类似的函数
double z_distance( boost::filesystem::path filename, integer time )
什么会为所有元素返回一个双精度,并为每一帧按升序或降序对它们进行排序(因此参数中的变化时间)。
你能告诉我如何将这个返回单个值的函数转换为排序函数所需的布尔函数吗?
如果我只能传递函数名而不是函数的完整调用,我该如何传递参数?
【问题讨论】:
标签: c++ visual-studio-2010 function sorting iterator