我正在寻找推荐的方法,在C ++中,创建一个新的std::vector
,其中向量的前半部分是另一个向量的内容,而后半部分是另一个向量的反向内容。用脚本语言(如Matlab)做类似的事情。 。
A = [2; 4; 6; 8;];
B = [A; flipud(A)];
使用循环在C ++中很容易做到这一点,但我想知道是否有一种更简洁的方式使用insert
和可能是反向itterator?
答案 0 :(得分:3)
当然,您可以使用insert
和reverse_iterator
s:
auto B = A;
B.insert(B.end(), A.rbegin(), A.rend());
当然,您也可以在第一次作业之前保留空格,只需要一次分配。但我认为这个想法很清楚。