[C++]配列(Array)の最大値のインデックスを取得するには?

C++

どうも、ちょげ(@chogetarou)です。

配列(Array)の最大値のインデックスを取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(Array)の最大値のインデックスを取得するには、std::distance()とstd::max_element()を使います。

まず、std::distance()を呼び出します。

std::distance()の第1引数に配列、第2引数にstd::max_element()を指定します。

そして、std::max_element()の第1引数に配列の最初の位置、第2引数に配列の最後の位置を指定します。

int maxIndex = std::distance(array, std::max_element(array, array + size(array)));

上記のstd::distance()は、配列の最大値のインデックスを返します。

max_element()の第2引数の配列の最後の位置をstd::sizeof()で取得する場合は、以下のようになります。

int length = sizeof(array) / sizeof(int);
int maxIndex = std::distance(array, std::max_element(array, array + length));
スポンサーリンク

使用例

#include <iostream>
using namespace std;
int main(void){
    int numbers[6] = {1, 2, 3, 10, 4, 5};
    
    int maxIndex = distance(numbers, max_element(numbers, numbers + size(numbers)));
    
    cout << maxIndex << endl;
}
出力:
3

コメント

タイトルとURLをコピーしました