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::arrayやstd::mapなど、他のSTLコンテナでも利用できます。
-
Windowsで使えるC++開発向けおすすめIDE 7選
```html 大規模なプロジェクトをプレーンなテキストエディターだけで管理するのは困難です。こうしたケースではIDE(統合開発環境)を使った方が、生産性が向上しストレスも大幅に軽減されます。IDEにはさまざまな種類があり、自分のニーズに合ったものを選ぶことが重要です。ここでは、Windowsで利用できる優れたC/C++向けIDEをご紹介します。 1. Visual Studio Microsoftが開発した定番IDEです。Windows上でのC++プログラムの構築・開発・プロファイリングにおいて、最高クラスのツール群を備えています。豊富なプラグインストアも魅力で、Azure、PowerShe
-
Javaで文字列を逆順にする最も簡単な方法は?reverse()メソッドの使い方を解説
組み込みのreverse()メソッドを使う(最も簡単な方法) Javaで文字列を逆順にする最も簡単な方法は、StringBufferクラスが提供するreverse()メソッドを使用することです。このメソッドは、現在のStringBufferオブジェクトの内容を反転し、その結果を新しいStringBufferオブジェクトとして返します。 手順は次の通りです。 反転したい文字列を引数に渡して、StringBufferクラスのインスタンスを生成します。 生成したオブジェクトのreverse()メソッドを呼び出します。 toString()メソッドを使って、再びString型に変換します。 サン