存在矢量矢量< int> v
我想用这个向量以相反的顺序添加另一个向量矢量< int> temp.
我想用这个向量以相反的顺序添加另一个向量矢量< int> temp.
例如,
v = {1,5,7} and temp = {11,9,8}
我想以相反的顺序添加temp,即{8,11}到向量v.
所以,v将是:v = {1,7,8,11}
这是我如何做到的:
int a[] = {1,7}; vector<int>v(a,a+3); int b[] = {11,8}; vector<int>temp(b,b+3); for(int i=temp.size()-1;i>=0;i--) v.push_back(temp[i]); for(int i=0;i<v.size();i++) cout<<v[i]<<" "; cout<<"\n";
STL或C中是否有内置函数来执行此操作?或者我必须手动完成吗?
解决方法
使用反向迭代器:
std::vector<int> temp(v.rbegin(),v.rend());
或者std :: reverse_copy():
std::reverse_copy(v.begin(),v.end(),std::back_inserter(temp));