2016-04-01 12 views
3

C++で簡単なベクトルを作成しようとすると、私は次のエラーを取得する:コンパイラエラー:「非集約はイニシャライザリストで初期化できません。」

Non-aggregates cannot be initialized with initializer list.

私が使用しているコードは次のとおりです。

#include <iostream> 
#include <string> 
#include <vector> 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    vector <int> theVector = {1, 2, 3, 4, 5}; 
    cout << theVector[0]; 
} 

私は入れてみました:

CONFIG += c++11 

私の.proファイルに保存して再構築しました。しかし、私はまだ同じエラーが発生します。私がQt 5.5であると想定しているものを使用しています。Aboutを押すと何が起こるのですか。Qt's Aboutです。

何か助けていただければ幸いです。

+0

しかし、あなたはこのような何かを行うことができますか? VS2013? –

+1

[ハードコードされた要素でstd :: vectorを初期化する最も簡単な方法は何ですか?](http://stackoverflow.com/questions/2236197/what-is-the-easiest-way-to-initialize-a -stdvector-with-hardcoded-elements) – Barmar

+0

@Barmarその複製ではありません。 OPコードは正しいですが、問題はC++ 11モードのコンパイラの設定方法です。 –

答えて

0

次の行:

vector <int> theVector = {1, 2, 3, 4, 5}; 

は事前C++ 11をコンパイルされません。ターゲットコンパイラが何

static const int arr[] = {1, 2, 3, 4, 5}; 
vector<int> theVector (arr, arr + sizeof(arr)/sizeof(arr[0]));