Я получил массив типа myArray[4] = { 10, 3, -5, 30 };
, и я хотел бы получить индексы двух его элементов с наибольшим значением (в нашем случае это элемент 30, 10
), а индекс 30
равен 3
, тогда какиндекс 10
равен 0
(нуля, конечно) .
Таким образом, результат должен быть {3, 0}
, поскольку индекс самого большого элемента (30.0) равен 3, аиндекс второго по величине элемента (10.0) равен 0.
Как реализовать простое рабочее решение для проблемы?
double myArray[4] = { 10, 3, -5, 30 };
double biggestElement_1 = *std::max_element(std::begin(myArray), std::end(myArray));
int biggestElement_1_indx = find(std::begin(myArray), std::end(myArray), biggestElement_1) - std::begin(myArray);
cout << biggestElement_1_indx << endl;
// How to go on to find the second biggest element ?
Примечание : IЯ, очевидно, новичок в C ++, так что извините за (глупый) вопрос beginner - однако: любая помощь будет очень признательна.:)