为什么它不能匹配运算符?操作数类型是第45行的std::basic stream和void



嘿,我是c++新手,我正在尝试显示一个向量,反转它,并在与引用传递向量的程序中旋转它,以避免复制,但它一直给我错误,我真的不知道出了什么问题。下面是我的代码:

#include<iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
void FillArr(vector<int> &arr)
{
int n;
for (int i = 0; i < arr.size(); i++)
cin>>n;
arr.push_back(n);
}
void PrintArr(vector<int> &arr3)
{
for(int & v: arr3)
cout<<v<<"t";
}
vector<int> arr2;
void CopyReverse(vector<int> &arr)
{
for(int i = 0; i < arr.size(); i++) {
arr2.push_back(arr[i]);
}
reverse (arr2.begin(), arr2.end());
}
void Rotate(vector<int> &arr)
{
for (int i = 0; i < 2; i++) {
arr.push_back(arr[0]); 
arr.erase(arr.begin()); 
}
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << "t";
}
}
int main(){
vector <int> arr;
FillArr(arr);
cout<<"Original array: "<<PrintArr(arr)<<endl;
cout<<"Reversed array: "<<CopyReverse(arr)<<endl;
cout<<"Original array after rotation: "<<Rotate(arr);
return 0;
}

您所犯的错误是,您试图打印函数调用的输出,但函数没有返回任何内容。你的代码中还有其他几个问题,我也已经解决了。您可以按如下方式编写代码:

#include<iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
void FillArr(vector<int> &arr)
{
for (int i = 0; i < arr.size(); i++)
{
cin>>arr[i];
}
}
void PrintArr(vector<int> &arr3)
{
for(int & v: arr3)
cout<<v<<"t";
cout<<endl;
}
vector<int> arr2;
void CopyReverse(vector<int> &arr)
{
for(int i = 0; i < arr.size(); i++) {
arr2.push_back(arr[i]);
}
reverse (arr2.begin(), arr2.end());
}
void Rotate(vector<int> &arr)
{
for (int i = 0; i < 2; i++) {
arr.push_back(arr[0]);
arr.erase(arr.begin());
}
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << "t";
}
}
int main(){
int arrSize;
cin>>arrSize;
vector <int> arr(arrSize);
FillArr(arr);
cout<<"Original array: ";
PrintArr(arr);
cout<<"Reversed array: ";
CopyReverse(arr);
PrintArr(arr2);
cout<<"Original array after rotation: ";
Rotate(arr);
return 0;
}
Input:
The first line of input contains n, the number of array elements.
The next line contains n space-separated integers.
3
1 5 6
Output:
Original array: 1   5   6   
Reversed array: 6   5   1   
Original array after rotation: 6    1   5

最新更新