У меня есть массив
double weights[]={203.21, 17.24, 125.32, 96.167}
Я хочу вычислить минимальный и максимальный элемент с помощью функции, если она есть? Помогите пожалуйста
У меня есть массив
double weights[]={203.21, 17.24, 125.32, 96.167}
Я хочу вычислить минимальный и максимальный элемент с помощью функции, если она есть? Помогите пожалуйста
Да, есть: std::minmax_element. Также есть std::max_element для нахождения только максимума и std::min_element для нахождения только минимума.
Применительно к вашему коду:
#include <algorithm>
#include <iterator>
int main() {
double weights[]={203.21, 17.24, 125.32, 96.167};
auto minMaxIterators = std::minmax_element(std::begin(weights), std::end(weights));
// minMaxIterators is a pair of iterators. To find the actual doubles
// themselves, we have to separate out the pair and then dereference.
double minWeight = *(minMaxIterators.first);
double maxWeight = *(minMaxIterators.second);
// Alternately, using structured bindings to extract elements from the pair
auto [minIt, maxIt] = std::minmax_element(std::begin(weights), std::end(weights));
minWeight = *minIt;
maxWeight = *maxIt;
// Alternately, using min_element and max_element separately
minWeight = *(std::min_element(std::begin(weights), std::end(weights)));
maxWeight = *(std::max_element(std::begin(weights), std::end(weights)));
}
интервал минВес ; int minWeight = std::max_element (0, sizeOf(minWeight)) ; Это правильный способ его использования? Спасибо за помощь
@Zoori Нет, даже не близко.
max_element()
принимает пару итераторов, обозначающих диапазон значений в контейнере, а затем возвращает итератор элементу с наибольшим значением. Вам нужно разыменовать этот итератор, чтобы получить его значение.