【问题标题】:Why does my vector need a constant value?为什么我的向量需要一个常数值?
【发布时间】:2021-05-03 03:36:07
【问题描述】:

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

int nodes = 5;

vector<int> adjacencyList[nodes];

【问题讨论】:

  • 您正在尝试使用 5 std::vectors 构造一个原始数组。如果你想构造一个有 5 个元素的std::vector,它应该是vector&lt;int&gt; adjacencyList(nodes);
  • 那不是向量。这是一个向量数组。
  • 我认为向量已经是动态数组 -- 好吧,鉴于这个陈述,你为什么要尝试使用数组语法来声明一个向量,即[nodes] if a vector 已经是动态数组了吗?

标签: c++ vector graph adjacency-list


【解决方案1】:

数组变量的大小必须是编译时常量,与数组元素的类型无关。

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

std::vector<int> adjacencyList(nodes);

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多