从变量初始化数组(C ++)

时间:2014-03-15 22:28:46

标签: c++ multidimensional-array functional-programming initialization

我正在做一个编程项目,我在编译时遇到了一个问题...我用C ++编写了这个代码:

scanf("%d %d", &number, &shares);
vector<int> graph[number];

我读取变量号,并用它来初始化数组的大小。但这会产生初始化问题,

  

非POD元素类型vector<int>

的可变长度数组

任何人都知道我能做些什么来解决这个问题?

3 个答案:

答案 0 :(得分:4)

您正在尝试定义向量数组,但数组不能具有运行时确定的大小。据推测,您想要声明某种类型的向量,您可以这样做:

vector<int> graph(number); // vector of size = number

修改:在你的评论之后,你所追求的似乎是向量的载体:

vector<vector<int>> graph(number);

答案 1 :(得分:2)

答案 2 :(得分:-2)

您正在尝试创建一个向量数组,如果您不通过动态分配执行此操作,这不是一件好事。如果你想要一个向量数组,请执行以下操作:

vector<int> * graph = new vector<int>[number];
...
delete[] graph;

如果您想要一个大小编号的矢量,请执行以下操作:

vector<int> graph(number);