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::向量邻接列表(节点);
您正试图用5std::vector
s构建一个原始数组。如果你想用5个元素构造一个std::vector
,它应该是vector-adjacencyList(nodes)代码>。这不是向量。这是一个向量数组。我认为向量已经是动态数组了——好吧,既然这样,如果向量已经是动态数组,为什么要尝试使用数组语法来声明向量,即[nodes]
?