我脑子里有个问题。 假设我有两个向量,分别叫做vector1和Vector2。
vector <int> vector1{1,2};
vector <int> vector2{3,4};
现在我要创建一个名为vector_2d的二维向量,并使用push_back函数将这两个向量分配到我的新二维向量中。
vector <vector <int>> vector_2d;
vector_2d.push_back(vector1);
vector_2d.push_back(vector2);
C++如何决定将vector2分配给Vector2D的第二行? 为什么它没有把这两个向量背靠背地相加呢?
另外,我尝试多次将vector1添加到一个名为new_vector的新二维向量中。 但它似乎只添加了一次vector1。 为什么会出现这种情况呢? 为什么它没有将多个vector1添加到新行或背靠背?
vector <vector <int>> new_vector;
new_vector.push_back(vector1);
new_vector.push_back(vector1);
new_vector.push_back(vector1);
new_vector.push_back(vector1);
C++如何决定将vector2分配给Vector2D的第二行?
通过阅读你的代码。
将两个“内部”向量添加到外部向量中,得到两个元素。
这就是在外部向量上调用push_back
时发生的情况。
为什么它没有把这两个向量背靠背地相加呢?
因为你没告诉它。
这将是:
vector <vector <int>> vector_2d;
vector_2d.push_back(vector1);
std::copy(std::begin(vector2), std::end(vector2), std::back_inserter(vector_2d[0]));
另外,我尝试多次将vector1添加到一个名为new_vector的新二维向量中。 但它似乎只添加了一次vector1。 为什么会出现这种情况呢?
不是的。
为什么它没有将多个vector1添加到新行或背靠背?
确实有。 你一定是看错了。