C ++如何在二维向量初始化中创建不同的向量?

问题描述 投票:1回答:2

我看到几个可以像这样初始化2-dim向量的地方(e.g

vector<vector<int> > vec(3, vector<int>(2, 0));

我在想的是,此代码的评估结果如下

auto tmp = vector<int>(2, 0);
vector<vector<int> > vec(3, tmp);

如果我是正确的,那么vec的3个元素都引用相同的引用。这意味着修改vec[0][1]也会修改vec[1][1]

如果我错了,C ++如何使vec中每个元素的初始化成为不同的引用?

c++ multidimensional-array vector std
2个回答
0
投票

来自constructor参考


0
投票

默认情况下,几乎所有C ++容器(包括std::vector)都是通过复制获取其参数的,所以:

© www.soinside.com 2019 - 2024. All rights reserved.