Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为数据类型向量的std::minmax函数编写自定义比较器<;glm::vec3>;(opengl数据类型)_C++_Comparator_Glm Math_Minmax - Fatal编程技术网

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

C++ 如何为数据类型向量的std::minmax函数编写自定义比较器<;glm::vec3>;(opengl数据类型),c++,comparator,glm-math,minmax,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<

我发现以下编译器错误:

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);
//函数getVertices()返回std::vector
const std::vector verts=mesh.getVertex();
自动最小值=标准:最小值(标准:开始(垂直),标准:结束(垂直),复合);
如何解决这个问题?请提供帮助。

该函数返回两个(或更多)值的最小值和最大值


要使用一系列迭代器(例如容器的开头和结尾)获取最小和最大元素,您应该使用。

正如“一些程序员”所建议的,我将其更改为std::minmax\u元素。成功了。:)

请将完整的错误输出复制粘贴到问题中。最好与a一起使用。这看起来应该会起作用。请提供一个补充说明,我怀疑您是否想经常复制网格的顶点。令人惊讶的是,我可以。此代码是openframeworks示例的一部分。完整的代码<代码>#包含“of main.h”#包含“of app.h”//==========bool comp(glm::vec3 const&first,glm::vec3 const&sec){return first.y>sec.y;}int main(){of mesh mesh mesh;mesh.load(“lofi bunny.ply”);const std::vector verts=mesh.getverts();auto minmax=std::minmax(std::begin(verts),std::end(verts),comp)}实际上,有一个
initializer\u list
版本需要2个以上的值。但是(a)这不是一个initialiser列表,即使它是,(b)那么你也会复制你的数据。仍然不需要。我将其更改为std::minmax\u元素。保持其他事物不变。成功了。谢谢。