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 サイトの他の関連記事を参照してください。