【发布时间】:2021-08-26 14:34:31
【问题描述】:
这两个语句std::vector<int> V(N) 和std::vector<int> V[N] 是否等效??
它们又是什么意思?
【问题讨论】:
-
第一个是预先分配了 N 个元素的向量。后者是一个由 N 个空向量组成的数组。
-
我问你:
int foo(42)和int foo[42]有什么区别? -
@Eljay 这是否意味着第二个语句是一种二维数组??
-
这意味着第二个语句可能应该是
std::array<std::vector<int>,N>,但这不是表示二维数组的最佳方式。std::vector<int> V[N]充斥着低质量的教程和奇怪的竞赛代码,它可能有一些实际用途,但我在其他地方从未见过它 -
是的,第二条语句是一种二维数组。一个奇怪的。很像狮子-山羊-蛇嵌合体是一种奇异的蛇纹石(或奇异的狮子座,或奇异的山羊座)。