如何为数据类型向量<glm :: vec3>(opengl数据类型)的std :: minmax函数编写自定义比较器

时间:2019-05-09 13:22:00

标签: c++ comparator glm-math minmax

我收到以下编译器错误:

C2664:Reason: cannot convert from 'const _Ty' to 'const glm::vec3'

我的自定义比较器:

bool comp(glm::vec3   const & first, glm::vec3  const & sec) { return first.y > sec.y; }

以及我称之为的代码

 // function getVertices() returns std::vector<glm::vec3>
const std::vector<glm::vec3> verts = mesh.getVertices();
auto minmax = std::minmax(std::begin(verts), std::end(verts),comp);

如何解决此问题?请帮忙。

2 个答案:

答案 0 :(得分:2)

std::minmax函数返回两个(或多个) 的最小值和最大值。

要使用一系列迭代器(例如容器的开头和结尾)获取min和max元素,应使用std::minmax_element

答案 1 :(得分:0)

正如“一些程序员伙计”建议的那样,我将其更改为std :: minmax_element。有效。 :)