C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++でハードコードした要素を使ってstd::vectorを初期化する最も簡単な方法

モダンC++(C++11以降)では、初期化子リストを使うことで、ハードコードした要素を用いてstd::vectorを非常に簡単に初期化できます。

std::vector<int> vec = {1,2,3};

このように、波括弧 {} の中に要素を並べて記述するだけで、コンパイラが自動的にvectorを構築してくれます。従来のように要素を一つずつpush_backする必要はありません。

アルゴリズム

ここでは、初期化したvectorの全要素の合計値を求める例を紹介します。手順は以下の通りです。

開始
    vector v を初期化する。
    accumulate を使って、v の全要素の合計を求める。
    結果を出力する。
終了

サンプルコード

以下は、vectorの各要素を合計するシンプルなプログラム例です。<numeric>ヘッダーに含まれるstd::accumulate関数を使用しています。

#include<iostream>
#include<vector>
#include<numeric>
using namespace std;

int main() {
    vector<int> v = {2,7,6,10};
    cout << "Sum of all the elements are:" << endl;
    cout << accumulate(v.begin(), v.end(), 0);
}

実行結果

Sum of all the elements are:
25

ポイント解説

  • accumulate(v.begin(), v.end(), 0): 第3引数の「0」は合計の初期値です。この初期値に各要素が順番に加算されていきます。
  • 初期化子リストはC++11で導入された機能のため、コンパイル時にはC++11以降の規格を指定してください(例: g++ -std=c++11 sample.cpp)。
  • 同様の書き方は std::arraystd::map など、他のSTLコンテナでも利用できます。
  1. Windowsで使えるC++開発向けおすすめIDE 7選

    ```html 大規模なプロジェクトをプレーンなテキストエディターだけで管理するのは困難です。こうしたケースではIDE(統合開発環境)を使った方が、生産性が向上しストレスも大幅に軽減されます。IDEにはさまざまな種類があり、自分のニーズに合ったものを選ぶことが重要です。ここでは、Windowsで利用できる優れたC/C++向けIDEをご紹介します。 1. Visual Studio Microsoftが開発した定番IDEです。Windows上でのC++プログラムの構築・開発・プロファイリングにおいて、最高クラスのツール群を備えています。豊富なプラグインストアも魅力で、Azure、PowerShe

  2. Javaで文字列を逆順にする最も簡単な方法は?reverse()メソッドの使い方を解説

    組み込みのreverse()メソッドを使う(最も簡単な方法) Javaで文字列を逆順にする最も簡単な方法は、StringBufferクラスが提供するreverse()メソッドを使用することです。このメソッドは、現在のStringBufferオブジェクトの内容を反転し、その結果を新しいStringBufferオブジェクトとして返します。 手順は次の通りです。 反転したい文字列を引数に渡して、StringBufferクラスのインスタンスを生成します。 生成したオブジェクトのreverse()メソッドを呼び出します。 toString()メソッドを使って、再びString型に変換します。 サン