如何从列表中获取最大元素

How to get the maximum element from a list

本文关键字:元素 获取 列表      更新时间:2023-10-16

我有double

的列表
list<double> = ls{};

我在我拥有的函数中插入了一些双打。

我必须在列表中找到最大,最小值和AVG元素。我尝试了min,最大为以下内容,但是我有错误错误:( cannot convert ‘std::_List_iterator<double>’ to ‘double’ in assignment):

max_latecny = max_element(ls,ls+ls.size());
min_latency = min_element(ls,ls+ls.size());

尝试以下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
int main() {
    std::vector<double> v{9.2, 0.4, 2.5, 6.5, 4.3, 3.1, 9.7, 0.9, 1.2, 2.2, 1.09, 1.3};
    if (v.size()) {
      if (v.size() % 2) {
        std::cout << "Middle: " << v[v.size()/2] << "n";
      } else {
        std::cout << "Middle: " << v[v.size()/2 - 1] << "n";
      }
      std::nth_element(v.begin(), v.begin() + v.size()/2, v.end());
      if (v.size() % 2) {
        std::cout << "Median " << v[v.size()/2] << 'n';
      } else {
        auto second = v[v.size()/2];
        std::nth_element(v.begin(), v.begin() + v.size()/2 - 1, v.end());
        auto first = v[v.size()/2 - 1];
        std::cout << "Median " << " " << (first + second)/2 << 'n';
      }
      auto result = std::minmax_element(v.begin(), v.end());
      std::cout << "Min: " << *result.first << "nMax: " << *result.second << "n";
    }
    return 0;
}