Return vector from a function C++ -
i trying return vector values in reverse order (e.g, enter vector 0,1,2,3,4 , function return vector 4,3,2,1,0).
the compiler says: segmentation fault.
in tests observed problem in assignment new2 = ret_vec(numbers);
, don't know going on.
#include <string> #include <iostream> #include <vector> using namespace std; vector<int> ret_vec(vector<int>n){ vector <int> n2; (int = 0; i< n.size(); ++i){ n2[i] = n[i]; } return n2; } void initializer(int s, vector<int>& n){ (int = 0; i< s; ++i){ n.push_back(i); } } void print_vector(vector<int> n){ (int = 0; i<n.size(); ++i){ cout << n[i] << " "; } } int main () { vector <int> numbers; int size; cin >> size; initializer(size,numbers); vector <int> new2(numbers.size()); cout << "old "; print_vector(numbers); new2 = ret_vec(numbers); cout << "new "; print_vector(new2); return 0; }
in following function
vector<int> ret_vec(vector<int>n){ vector <int> n2; (int = 0; i< n.size(); ++i){ n2[i] = n[i]; } return n2; }
you copy content of parameter vector. (i thing forgot space between parameter , typ of it)
you can revers order way, (its reverseit "by hand"):
vector<int> ret_vec(vector<int> n){ vector <int> n2; for(int i=n1.size()-1; i<=0; --i) { n2.push_back(n1[i]); } return n2; }
Comments
Post a Comment