ホームページ  >  記事  >  バックエンド開発  >  C でベクトル内の最大値と最小値を効率的に見つけるにはどうすればよいですか?

C でベクトル内の最大値と最小値を効率的に見つけるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 00:23:02381ブラウズ

How do I efficiently find the maximum and minimum values within a vector in C  ?

C でのベクトルの最大値または最小値の検索

C では、ベクトルの最大値または最小値を取得するのは簡単な作業です。 STL (Standard Template Library) 関数を利用することで、コンテナ全体を反復処理することなくこれを効率的に実現できます。

std::max_element() と std::min_element() を使用する

標準ライブラリには、一連の値の最大要素と最小要素をそれぞれ見つけるための関数 std::max_element() と std::min_element() が提供されています。これらの関数は、検索を実行する範囲を示す一対の反復子を引数として受け取ります。戻り値は、最大値/最小値を持つ要素を指す反復子です。

構文:

<code class="cpp">std::max_element(iterator_begin, iterator_end);
std::min_element(iterator_begin, iterator_end);</code>

例:

<code class="cpp">#include <vector>
#include <algorithm>

std::vector<int> v = {1, 3, 5, 7, 9};

int max_num = *std::max_element(v.begin(), v.end());
int min_num = *std::min_element(v.begin(), v.end());

std::cout << "Maximum value: " << max_num << std::endl;
std::cout << "Minimum value: " << min_num << std::endl;</code>

配列とベクトルの使用

ベクトルと配列はどちらも C のコンテナーです。ただし、ベクトルは動的ですが、配列は静的です。したがって、最大値/最小値を取得するアプローチは若干異なります。

配列の場合、要素に直接アクセスし、配列を反復処理することで最大/最小値を決定できます。

例:

<code class="cpp">int arr[] = {1, 3, 5, 7, 9};
int size = sizeof(arr) / sizeof(arr[0]);

int max_num = arr[0];
int min_num = arr[0];

for (int i = 1; i < size; i++) {
    max_num = std::max(max_num, arr[i]);
    min_num = std::min(min_num, arr[i]);
}

std::cout << "Maximum value: " << max_num << std::endl;
std::cout << "Minimum value: " << min_num << std::endl;</code>

結論として、std::max_element() と std::min_element() を使用すると、ベクトル内の最大値と最小値を見つける便利な方法になります。配列の場合、要素を反復処理して同じ結果を得ることができます。

以上がC でベクトル内の最大値と最小値を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。