ホームページ  >  記事  >  バックエンド開発  >  C++ の反復アルゴリズムを探索する

C++ の反復アルゴリズムを探索する

WBOY
WBOYオリジナル
2023-08-21 21:54:481105ブラウズ

C は、コレクション データを処理するための多くの反復アルゴリズムを提供する人気のあるプログラミング言語です。この記事では、C の反復アルゴリズムの詳細を検討します。

反復アルゴリズムとは何ですか?

反復アルゴリズムは、プロセスまたは命令の繰り返し適用に基づくアルゴリズムです。プログラミングにおいて、ループは最も一般的に使用される反復アルゴリズムの 1 つです。イテレーションとは、同じ操作を繰り返し実行することで、徐々に望ましい結果に近づくことを指します。プログラミングでは、繰り返しを実行するためにループ ステートメントがよく使用されます。

C の反復アルゴリズム

C では、標準ライブラリは、反復子を使用してコンテナー内の要素にアクセスするさまざまな反復アルゴリズムを多数提供します。

Iterator は、コンテナ内の要素にアクセスできるポインタ オブジェクトです。イテレータはコンテナ内の要素の走査を提供し、データを処理できるようにします。

C 標準ライブラリで一般的に使用される反復アルゴリズムの一部を以下に示します。

  1. for_each

for_each は、指定されたコンテナ内の各要素に対する関数。

以下は例です:

#include <algorithm>
#include <vector>
#include <iostream>

void display(int i) {
    std::cout << i << " ";
}

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    std::for_each(v.begin(), v.end(), display);
    return 0;
}

このプログラムは 1 2 3 4 5 を出力します。

  1. find

検索アルゴリズムは、コンテナ内の要素を検索するために使用され、最初に一致した要素のイテレータを返します。

次は例です:

#include <algorithm>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    auto i = std::find(v.begin(), v.end(), 3);
    if (i != v.end()) {
        std::cout << "Found " << *i << std::endl;
    }
    return 0;
}

このプログラムは Found 3 を出力します。

  1. sort

ソート アルゴリズムは、指定された比較関数に従ってコンテナー内の要素をソートするために使用されます。

次は例です:

#include <algorithm>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v {5,2,7,4,3,6,1};
    std::sort(v.begin(), v.end());
    for (int i : v) {
        std::cout << i << " ";
    }
    return 0;
}

このプログラムは 1 2 3 4 5 6 7 を出力します。

  1. accumulate

accumulate アルゴリズムは、コンテナ内の要素を初期値まで累積するために使用されます。

次は例です:

#include <numeric>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    int sum = std::accumulate(v.begin(), v.end(), 0);
    std::cout << "Sum: " << sum << std::endl;
    return 0;
}

このプログラムは Sum: 15 を出力します。

  1. transform

変換アルゴリズムは、コンテナ内の要素に関数を適用し、その結果を別のコンテナに保存するために使用されます。

以下は例です:

#include <algorithm>
#include <vector>
#include <iostream>

int square(int i) {
    return i * i;
}

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    std::vector<int> v2(v.size());
    std::transform(v.begin(), v.end(), v2.begin(), square);
    for (int i : v2) {
        std::cout << i << " ";
    }
    return 0;
}

このプログラムは 1 4 9 16 25 を出力します。

概要

反復アルゴリズムは、コレクション データの処理に適した一般的なアルゴリズムです。 C では、標準ライブラリは、コンテナ内の要素を処理する便利な方法を提供するさまざまな反復アルゴリズムを提供します。これらのアルゴリズムを使用して、コンテナ内の要素を走査、検索、および変更できます。 C の反復アルゴリズムに習熟すると、収集データをより適切に処理し、プログラミングの効率を向上させることができます。

以上がC++ の反復アルゴリズムを探索するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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