我在想一个问题。可以说我有两个向量,分别是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分配给vector_2d的第二行?为什么没有将这两个向量背靠背相加呢?另外,我尝试将vector1多次添加到称为new_vector的新2-D向量中。但是似乎只添加一次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分配给vector_2d的第二行?
通过阅读您的代码。
您要在外部向量上添加两个“内部”向量,从而产生两个元素。
这是在外部向量上调用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的新2-D向量中。但是似乎只添加一次vector1。为什么会这样呢?
不是。
为什么不将多个vector1添加到新行或不背对背?
它做了。您一定以某种方式观察到它是错误的。
关于c++ - .push_back如何在C++中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62915769/