C++のSTLを使って配列の最大要素を見つける方法
この記事では、C++のSTL(標準テンプレートライブラリ)を使用して、配列の中から最大要素を見つける方法を解説します。例えば、配列が [12, 45, 74, 32, 66, 96, 21, 32, 27] の場合、最大要素は 96 となります。
C++では、<algorithm> ヘッダーに用意されている max_element() 関数を使うことで、自分でループを書かずに最大要素を簡単に取得できます。この関数は、指定した範囲内の最大要素を指すイテレータを返すため、間接参照演算子(*)を使って実際の値を取り出します。
サンプルコード
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int arr[] = {12, 45, 74, 32, 66, 96, 21, 32, 27};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Array is like: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << "\nMax Element is: " << *max_element(arr, arr + n);
}実行結果
Array is like: 12 45 74 32 66 96 21 32 27 Max Element is: 96
コードのポイント
max_element(arr, arr + n) は、配列の先頭 arr から末尾 arr + n までの範囲を走査し、最大値を指すイテレータを返します。計算量は O(n) であり、配列の要素数に比例して処理時間が増加します。
なお、同じ要領で最小要素を取得したい場合は、同じ <algorithm> ヘッダーにある min_element() 関数を使用します。使い方は max_element() とまったく同じで、範囲内の最小値を指すイテレータを返します。
-
C++で二分探索木(BST)を使って配列の最大要素を検索する方法
本記事では、二分探索木(Binary Search Tree:BST)を利用して、配列の中から最大要素を検索するC++プログラムを紹介します。二分探索木の構造的な性質を活かすことで、最大値の探索は右側のノードを辿るだけで完了し、このプログラムの計算量は O(log n) に抑えられます。アルゴリズム開始 与えられたデータ要素をもとに二分探索木を構築する。 ルートポインタを、存在する限り最も右側の子ノードへ辿り続ける。 そのノードのデータ部分を、データ集合の最大要素として出力する。 最大データの深さ(ルートからの距離)を出力する。 終了仕組みのポイント二分探索木では、「左
-
PHPで配列内の最大要素を取得する方法
配列の中から最大の要素を求めるには、PHPでは関数を定義して各要素を順番に比較していく方法が一般的です。以下に、その実装例を紹介します。 サンプルコード <?php function get_max_value($my_array){ $n = count($my_array); $max_val = $my_array[0]; for ($i = 1; $i < $n; $i++) &nb