不使用函数打印反向元素

问题描述

每当我尝试制作显示功能void display(vector<int> ivec) 它应该在实现反向函数后向我打印反向矢量元素,但事实并非如此,但是当我尝试打印到反向函数内的元素时,它正在向我打印反向元素,为什么会这样?

代码:-


#include<iostream>
#include<vector>
using std::cout;
using std::cin;
using std::endl;
using std::vector;

void reversefun(vector<int>ivec,int start,int end){
  while(start < end){ // 
    int temp= ivec[start];
    ivec[start] = ivec[end];
    ivec[end] = temp; 
    start++;
    end--;
  }
     
}

void display(vector<int> ivec){
  for(int i = 0; i <ivec.size(); i ++){
    cout<< ivec[i] << " " ;
  }
}
  
int main(){
  int n;
  cin>>n;
  vector<int> ivec(n);

  for(auto &i: ivec){
    cin>>i;
  }
  int start = 0;
  int end = ivec.size();
  reversefun(ivec,start,end-1);
  display(ivec);
  return 0;
}
    

输出:-

5 
1 2 3 4 5
1 2 3 4 5 

预期输出:-

5
1 2 3 4 5 
5 4 3 2 1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)