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

C++

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

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

スポンサーリンク

方法

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

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

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

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

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

int minIndex = std::distance(array, std::min_element(array, array + size(array)));

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

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

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

使用例

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

コメント

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