2015-05-05 91 views
2

我正在尋找推薦的方式,在C++中,以製作一個新的std::vector,其中向量的前半部分是另一個向量的內容,而後半部分是另一個向量的反向內容向量。在像Matlab這樣的腳本語言中做這樣的事情。 。 。連接正向和反向矢量

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

這會很容易在C++做使用循環,但我不知道是否有使用insert或許反向itterator一個更合適的方法?

回答

3

當然您也可以使用insertreverse_iterator S:

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

你當然也可以在第一次分配之前預留的空間只有一個分配,請你。但我認爲這個想法很清楚。

0
std::vector<int> A = {8, 2, 4, 5, 2}; 

std::vector<int> B(A); 
B.insert(B.end(), A.rbegin(), A.rend());