1. ホーム
  2. c++

[解決済み] 最大要素の位置の求め方

2023-03-24 08:40:09

質問

値の配列の最大要素の位置(値ではない)を返す標準的な関数はありますか?

例えば、以下のようなものです。

このような配列があったとします。

sampleArray = [1, 5, 2, 9, 4, 6, 3]

ということを示す3の整数を返す関数が欲しい。 sampleArray[3] が配列の中で最大の値であることを教えてくれる関数が欲しい。

どのように解決するのですか?

STLで std::max_element はイテレータを提供します(これは std::distance でインデックスを得ることができます)。

int main(int argc, char** argv) {
  int A[4] = {0, 2, 3, 1};
  const int N = sizeof(A) / sizeof(int);

  cout << "Index of max element: "
       << distance(A, max_element(A, A + N))
       << endl;

  return 0;
}