ホームページ > バックエンド開発 > C++ > C で std::vector の要素を効率的に合計するにはどうすればよいですか?

C で std::vector の要素を効率的に合計するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-01 01:52:10
オリジナル
651 人が閲覧しました

How Can I Efficiently Sum the Elements of a std::vector in C  ?

std::vector 内の要素の合計テクニック

std::vector 内の要素の合計を求めることは一般的な操作です。ここではさまざまなアプローチを示します:

C 03

  • 古典的な For ループ:

    int sum_of_elems = 0;
    for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
      sum_of_elems += *it;
    ログイン後にコピー
  • 標準アルゴリズム:

    #include <numeric>
    sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
    ログイン後にコピー

C 11 以降

  • 自動タイプ追跡:

    #include <numeric>
    sum_of_elems = std::accumulate(vector.begin(), vector.end(),
                                  decltype(vector)::value_type(0));
    ログイン後にコピー
  • std::for_each:

    std::for_each(vector.begin(), vector.end(), [&] (int n) {
      sum_of_elems += n;
    });
    ログイン後にコピー
  • 範囲-ベースループ:

    for (auto& n : vector)
      sum_of_elems += n;
    ログイン後にコピー

C 17 および上記

  • std::reduce:

    #include <numeric>
    auto result = std::reduce(v.begin(), v.end());
    ログイン後にコピー

この関数は、以下に基づいて結果の型を推論します。ベクトルの要素タイプ。これにより、さまざまな数値タイプの自動処理が可能になります。

以上がC で std::vector の要素を効率的に合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート