编译器错误:"无法使用初始化程序列表初始化非聚合。"

时间:2016-04-01 00:55:18

标签: c++ qt

当尝试在C ++中创建一个简单的向量时,我收到以下错误:

  

无法使用初始化列表初始化非聚合。

我使用的代码是:

#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

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

以下一行:

void countCoins( uint i, uint a, uint coinVal,
                 const vector< uint > & denom,
                 Matrix< uint > & memo )
{
   uint numCoins = 0;

   // Check the current value with the value above it
   if( memo.at(i, a) != memo.at(i - 1, a) )
   {
      if( denom.at(i) == coinVal )
      {
         numCoins++;
      }

      countCoins( i, a - denom.at(i), coinVal, denom, memo );    // If not equal, "jump" over
   }
   else
   {
      if( i > 0 )
      {
         countCoins( i - 1, a, coinVal, denom, memo );    // If equal, move up a row
      }
      else
      {
         numCoins += a;    // If equal and the row number is 0
      }
   }
}

不会编译前C ++ 11。

但是,你可以这样做:

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