在C ++中初始化Vectors的问题

时间:2014-03-21 00:45:07

标签: c++11 vector

我试图以这种方式在visual studio中初始化一个矢量:

const vector <int> A {1,2,3,4,5};

它给我一个错误。错误说:

&#34;错误C2470:&#39; A&#39; :看起来像一个函数定义,但没有参数列表;跳过明显的身体&#34;

任何人都可以告诉我为什么我会收到此错误?

2 个答案:

答案 0 :(得分:1)

C ++ 98不支持使用初始化向量的方式... 已经在C ++ 11中为initializer list constructor提供了支持。

所以你可以使用下面的代码......

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

答案 1 :(得分:1)

正如我所提到的,VS2012不支持initializer_list,因此我们得到了编译错误。您可以使用以下内容来获得几乎相同的内容。

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

int main() {

    int arr[] = {1,2,3,4,5};
    const std::vector <int> A(std::begin(arr), std::end(arr));
    for(const auto& i: A)
        std::cout<<i<<std::endl;
    }