Как написать собственный компаратор для функции std :: minmax для вектора типа данных <glm :: vec3> (тип данных opengl) - PullRequest
0 голосов
/ 09 мая 2019

Я получаю следующую ошибку компилятора:

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 ]

2 голосов
/ 09 мая 2019

Функция std::minmax возвращает минимальное и максимальное значения двух (или более) значений .

Для получения минимума иМаксимум элементов, использующих диапазон итераторов (например, начало и конец контейнера), вы должны использовать std::minmax_element.

0 голосов
/ 09 мая 2019

Как предложил «Какой-то программистский чувак», я изменил его на std :: minmax_element. это сработало. :)

...