我正在做一个编程项目,我在编译时遇到了一个问题...我用C ++编写了这个代码:
scanf("%d %d", &number, &shares);
vector<int> graph[number];
我读取变量号,并用它来初始化数组的大小。但这会产生初始化问题,
非POD元素类型
的可变长度数组vector<int>
任何人都知道我能做些什么来解决这个问题?
答案 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);