我试图以这种方式在visual studio中初始化一个矢量:
const vector <int> A {1,2,3,4,5};
它给我一个错误。错误说:
&#34;错误C2470:&#39; A&#39; :看起来像一个函数定义,但没有参数列表;跳过明显的身体&#34;
任何人都可以告诉我为什么我会收到此错误?
答案 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;
}