[解決済み】C++ベクターの要素を合計する方法は?
2022-02-08 09:37:47
質問
とは何ですか?
良い
の全要素の和を求める方法です。
std::vector
?
ベクトルがあるとします
std::vector<int> vector
いくつかの要素が含まれています。今、私はすべての要素の合計を求めたい。この場合、どのような方法がありますか?
どのように解決するのですか?
実は、いろいろな方法があるんです。
int sum_of_elems = 0;
C++03
-
古典的なforループ。
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);
重要なお知らせです。 最後の引数の型は、初期値だけでなく 結果の型 と同じです。そこにintを入れると、vectorにfloatがあってもintを集積してしまいます。浮動小数点数の和を求める場合は、以下のように変更します。
0
を0.0
または0.0f
(nneonneoさんに感謝)。以下のC++11の解決策も参照してください。
C++11以上
-
b. 将来的にベクタータイプが変更された場合でも、自動的に把握することができる。
#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ループを使用する(Roger Pateに感謝)。
for (auto& n : vector) sum_of_elems += n;
関連
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み】ベクトルからサブベクトルを抽出する最適な方法とは?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] std::vector<> からインデックスで要素を消すにはどうしたらいいですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】std::cin.getline( ) vs. std::cin