ホームページ > バックエンド開発 > C++ > C で std::vector の要素を合計する最良の方法は何ですか?

C で std::vector の要素を合計する最良の方法は何ですか?

Susan Sarandon
リリース: 2024-11-26 11:16:10
オリジナル
606 人が閲覧しました

What are the Best Ways to 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 アプローチ (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 ループ:

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

C 17機能強化

std::reduce:

#include <numeric>

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

std::reduce は結果の型推論を処理し、大規模なコレクションの並列実行機能を提供します。

以上がC で std::vector の要素を合計する最良の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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