I have got the following code:
#include <iostream>
#include <vector>
using namespace std;
vector<int> Reversed(const vector<int>& v){
//vector<int> v; //[Error] declaration of 'std::vector<int> v' shadows a parameter
int z; vector<int> copy; vector<int> working;
working = v;
z = working.size();
int i;
for (i = 0; i<=z; i++){
working[i] = working[z];
copy.push_back(working[i]);
}
return copy;
}
int main() {
vector<int> v;
cin >> v; /*[Error] no match for 'operator>>' (operand types are 'std::istream'
{aka 'std::basic_istream<char>'} and 'std::vector<int>')*/
cout << Reversed(v);
return 0;
}
Please, explain to me why I am getting this error on line 18:
no match for operator >>`
P.s.: const & i
is a prerequisite task, I cannot change it. I just need an upside-down copy of this vector.
It looks like you are asking the user to enter a list of numbers. std::cin
(or just cin
, since you've got use namespace std;
) doesn't know how to receive a list of integers and turn that into a vector<int>
for you.
If you want to receive a vector from user input, I would suggest you ask the user for a list of numbers, something like:
// replace VECTOR_LENGTH
for (int i = 0; i < VECTOR_LENGTH; i++) {
int num;
cin >> num;
v.push_back(num);
}