这是我第一次作为C++初学者在此网站上发布的文章。 我的问题很简单。 编写一个反转向量中元素顺序的函数。例如,1,3,5,7,9变为9,7,5,3,1。逆函数 应产生具有相反序列的新矢量,保持其原始的 矢量不变。C++如何反转向量中元素的顺序?
这是我的代码。当我运行它时,“打印”一词之后没有任何内容。我敢肯定,我在某个地方犯了一个愚蠢而简单的错误,但却搞不清楚。将不胜感激任何help.Cheers。
void reverse_a(const vector<int>&v1, vector<int>&v2)
{
//this function creates vector2 with the reverse sequence of elements from vector 1
for(int i=v1.size()-1;i<=0;--i)
{
v2.push_back(v1[i]);
}
}
void print(const vector<int>&v)
{
cout<<"Printing"<<endl;
for(int i=0;i<v.size();++i)
cout<<v[i]<<",";
cout<<"\n"<<"end of print.\n";
}
int main()
{
vector<int>v1;
vector<int>v2;
int input;
while(cin>>input)
v1.push_back(input);
reverse_a(v1,v2);
print(v2);
keep_window_open("`");
}
当你通过你的代码调试步骤,会发生什么? – tmyklebu 2014-09-24 06:15:32
请发布[MCVE](http://stackoverflow.com/help/mcve)并删除不相关的代码。你的倒车功能有一个可疑的评论。你在那里做什么?另外,向量具有反向迭代器。和构造函数采用迭代器对。 – juanchopanza 2014-09-24 06:16:22
可能的重复[如何反转C++向量?](http://stackoverflow.com/questions/8877448/how-do-i-reverse-ac-vector) – rold2007 2016-05-10 23:28:34