c – 编译器错误:“无法使用初始化列表初始化非聚合.”

当尝试在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的内容,这就是当我按下关于它对你有什么意义时会发生什么:Qt’s About.

任何帮助表示赞赏.

最佳答案 以下行:

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]) );
点赞