联合向前和反向向量

Concatenate forward and reversed vector

本文关键字:向量 联合向      更新时间:2023-10-16

我正在寻找C 的推荐方式,以制作一个新的std::vector,其中矢量的前半部分是另一个向量的内容,下半部分是相反的内容其他向量。用脚本语言(例如Matlab)做类似的事情。。。

A = [2; 4; 6; 8;];
B = [A; flipud(A)];

使用循环在C 中很容易做到,但是我想知道是否有使用insert和反向iTterator的方法?

确保您可以使用insertreverse_iterator S:

auto B = A;
B.insert(B.end(), A.rbegin(), A.rend());

当然,您还可以在第一个任务之前保留该空间,只需提供一个分配。但是我认为这个想法很清楚。

std::vector<int> A = {8, 2, 4, 5, 2};
std::vector<int> B(A);
B.insert(B.end(), A.rbegin(), A.rend());