我想实现第5.2节中描述的快速标记算法 http://physbam.stanford.edu/~fedkiw/papers/stanford2001-03.pdf。在这里,他们声称使用二进制堆进行排序操作,所以我认为使用标准库的sort_heap方法是个好主意,如下所述:
http://www.cplusplus.com/reference/algorithm/sort_heap/
在这个例子中,要排序的向量只包含整数值,而在我的情况下,我有一个在3D网格上定义的距离图(线性化为一维数组),因为我必须知道对应于特定距离的索引价值,我应该使用类似的东西:
std::vector<std::pair<int,float>> v;
在这个帖子中
How do I sort a vector of pairs based on the second element of the pair?
它显示了如何为类似的问题调用std :: sort,是否可以对std :: sort_heap执行相同的操作?
谢谢!
修改
作为T.C.指出这个问题可以通过使用priority_queue来解决!