尝试显示列表时,C++ 错误与运算符 << 不匹配

C++ Error no match for operator << when trying to display a list

我不知道这段代码有什么问题,我是一个c++新手,有人可以帮我解决吗?一段时间以来我一直遇到这个问题,我不知道如何解决。我试过弄乱代码,但没有成功。有人知道这有什么问题吗?

#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <list>

using namespace std;

void rising(double T[], int n)
{
    double pom;
    for (int j=n-1;j>0;j--)
    for (int i=0;i<j;i++)
    if (T[i]>T[i+1])
    {
        pom=T[i];
        T[i]=T[i+1];
        T[i+1]=pom;
    }
}
void lowering(double T[], int n)
{
    double pom;
    for (int j=n-1;j>0;j--)
    for (int i=0;i<j;i++)
    if (T[i]<T[i+1])
    {
        pom=T[i];
        T[i]=T[i+1];
        T[i+1]=pom;
    }
}
void show(double T[], int n)
{
    for(int i=0; i<n; i++)
    cout<<T[i]<<setw(3);
    cout<<endl;
}
int main()
{
    double tablica[]={2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0};
    cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;
    cout<<"elementy tablicy posortowane rosnaco: "<<rising(tablica,11)<<endl;
    cout<<"elementy tablicy posortowane malejaco: "<<lowering(tablica,11)<<endl;
    cin.get();
    cin.ignore();
    return 0;
}

问题出在这里:

 cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;

<<show(tablica,11)

函数显示没有return任何值(它的return类型是void),

您可以简单地调用该函数来执行其打印:

int main()
{
    double tablica[] = { 2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0 };
    cout << "elementy tablicy to: ";
    show(tablica, 11);

你的函数有 void return 类型,<< 运算符无法用它们做任何事情,幸运的是你已经有了函数可以做你想做的事,你只需要在正确的时尚和顺序:

int main()
{
    double tablica[]={2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0};
    cout<<"elementy tablicy to: ";
    show(tablica,11);
    rising(tablica,11);
    cout<<"elementy tablicy posortowane rosnaco: ";
    show(tablica,11);
    lowering(tablica,11);
    cout<<"elementy tablicy posortowane malejaco: ";
    show(tablica,11);
    cin.get();
    return 0;
}