【问题标题】:Vector initialization using a bracket after the name of the vector在向量名称后使用括号进行向量初始化
【发布时间】:2021-12-03 14:59:33
【问题描述】:

我目前对 c++ 程序很感兴趣。然而,当我查看朋友的作品时,我注意到一个奇怪的向量初始化

vector <int> dist(1+n, INF);

是否完全一样

vector<int> dist[INF];

【问题讨论】:

  • 第一个 sn-p 创建大小为1+n 的向量,第二个创建INF 不同空向量的数组。
  • A vector Construction reference 可能会对您有所帮助。
  • @Yksisarvinen 第一个向量的大小为1 + n 元素,所有元素都初始化为值INF
  • 第一个是法线向量初始化。第二个是一个奇怪的向量数组。
  • @Someprogrammerdude 是的,对不起。我永远不记得哪个参数先出现。

标签: c++ vector initialization


【解决方案1】:

第一个 sn-p vector &lt;int&gt; dist(1+n, INF); 初始化一个大小为 1+n 的向量,每个向量都包含 INF 整数,例如,如果我们初始化一个向量 vec

vector<int> vec(3, 5);

这会创建一个大小为 3 的向量 vec,其每个元素的值为 5,vec[0] = vec[1] = vec[2] = 5

对于第二个 sn-p vector&lt;int&gt; dist[INF];,这会创建 INF 数量的空向量,因此如果我们有 vector&lt;int&gt; dist[5],这将创建 5 个空向量 v[0],v[1]...v[5] (其中 v[0],v[1]...v[5] 都是空向量)。然后我们可以对这些空向量使用任何向量方法,例如 v[0].push_back(5)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-01
    • 2011-05-18
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2011-03-04
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多