М
Жел. 15, 2017, 5:17 Т.Қ.

Как найти в QVector макс и мин

QVector

Здравствуйте.

Как у QVector найти макс и мин между нужными элементами? Между началом и концом вектора работает так:
double q1=*std::max_element(High.begin(),High.end());
А если хочу найти между не конечными элементами :
double q1=*std::max_element(High[0],High[10]);
то выдает 3 ошибки:
C:\Qt\project\StrategyCod\strategycod.cpp:78: ошибка: invalid type argument of unary '*' (have 'double')
double q1=*std::max_element(High[0],High[10]);
^
C:\Qt\Qt5.9.2\Tools\mingw530_32\i686-w64-mingw32\include\c++\bits\predefined_ops.h:43: ошибка: invalid type argument of unary '*' (have 'double')
{ return *__it1 < *__it2; }
^
C:\Qt\Qt5.9.2\Tools\mingw530_32\i686-w64-mingw32\include\c++\bits\predefined_ops.h:43: ошибка: invalid type argument of unary '*' (have 'double')
{ return *__it1 < *__it2; }
^

2
Сұрақ мақалада қойыладыQt/C++ - Сабақ 037. QVector көмегімен екі өлшемді массив

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

2
Evgenii Legotckoi
  • Жел. 15, 2017, 5:24 Т.Қ.
  • Жауап шешім ретінде белгіленді.

День добрый!

В данном случае std::max_element работает с итераторами, поэтому обращение через оператор [] не сработает. Но в данном случае можно записать так.
double q1=*std::max_element(High.begin() + 0 , High.begin() + 10);
Это будет эквивалентно тому, что вы попытались сделать с оператором [], только применительно к итераторам.
    М
    • Жел. 15, 2017, 5:26 Т.Қ.

    Спасибо

      Пікірлер

      Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
      Кіріңіз немесе Тіркеліңіз