c++ - .push_back如何在C++中工作?

标签 c++ vector push-back

我在想一个问题。可以说我有两个向量,分别是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/

相关文章:

c++ - vector push_back 不起作用 c++

c++ - 销毁QHBoxLayout

c++ - 依赖行者 : Unable to resolve the side by side configuration information contains error

c++ - 如何在 C++ 中静态转换 2D vector size() (size_t 到 int)?

math - 二维三重乘积构造垂直线

c++ - vector 中嵌套 vector 的分段故障核心转储

c++ - 为什么我们可以push_back仅用range定义的子 vector ?

c++ - vector (push_back); g++-O2;分段故障

c++ - 哪个头文件包含 DirectX 12 中的 ThrowIfFailed()

c++ - 万花筒教程找不到 header `ExecutorProcessControl.h`