У меня есть вектор QPointF
, и мне нужно найти минимальное и максимальное значения y
, потому что мне нужно знать, какова амплитуда данных в векторе.
Я использую QPointF, нодля добавления каждого нового элемента я суммирую значение x
других элементов в векторе:
std::vector<QPointF> points;
int getTotalTime() {
int time = 0;
for(QPointF& p : points) {
time += p.x();
}
return time;
}
void addPointToGraph(const QPointF& p) {
if(points.size() == 0) {
points.push_back(p);
return;
}
points.push_back(QPointF(getTotalTime() + p.x(), p.y()));
}
Таким образом, поэтому у меня будет непрерывная форма волны ... это прекрасно работает!Но теперь мне нужно найти амплитуду формы волны, поэтому мне нужно найти минимальное и максимальное значения y
вектора points
.
Например, мне нужна функция для возврата min y
и max y
как std::pair<float,float>
Я видел в заголовке алгоритма, у нас есть что-то вроде:
std::array<int,7> foo {3,7,2,9,5,8,6};
auto result = std::minmax_element (foo.begin(),foo.end());
// print result:
std::cout << "min is " << *result.first;
std::cout << ", at position " << (result.first-foo.begin()) << '\n';
std::cout << "max is " << *result.second;
std::cout << ", at position " << (result.second-foo.begin()) << '\n';
Вопрос в том, как я могу использовать ту же идею и перейти через свой собственный вектор и проверить только на y
из баллов?