Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么向量需要一个常量?_C++_Vector_Graph_Adjacency List - Fatal编程技术网

C++ 为什么向量需要一个常量?

C++ 为什么向量需要一个常量?,c++,vector,graph,adjacency-list,C++,Vector,Graph,Adjacency List,我正在尝试使用向量来实现邻接列表图。在我的向量声明中,我不断得到一个错误“表达式必须有一个常量值”。我不明白为什么会出现这个错误,因为我认为向量已经是动态数组了,这不会是一个问题 int nodes = 5; vector<int> adjacencyList[nodes]; int节点=5; 向量邻接列表[节点]; 无论数组元素的类型如何,数组的大小必须是编译时常量 不太清楚数组声明是否是故意的。如果你想要一个向量的动态数组,那么你可以用一个向量的向量来代替。如果您打算创建一个

我正在尝试使用向量来实现邻接列表图。在我的向量声明中,我不断得到一个错误“表达式必须有一个常量值”。我不明白为什么会出现这个错误,因为我认为向量已经是动态数组了,这不会是一个问题

int nodes = 5;

vector<int> adjacencyList[nodes];
int节点=5;
向量邻接列表[节点];

无论数组元素的类型如何,数组的大小必须是编译时常量

不太清楚数组声明是否是故意的。如果你想要一个向量的动态数组,那么你可以用一个向量的向量来代替。如果您打算创建一个向量,那么不要使用方括号,因为方括号是数组的语法。以下是如何初始化特定大小的单个向量的示例:

std::vector<int> adjacencyList(nodes);
std::向量邻接列表(节点);

您正试图用5
std::vector
s构建一个原始数组。如果你想用5个元素构造一个
std::vector
,它应该是
vector-adjacencyList(nodes)。这不是向量。这是一个向量数组。我认为向量已经是动态数组了——好吧,既然这样,如果向量已经是动态数组,为什么要尝试使用数组语法来声明向量,即
[nodes]