c++ 如何打印使用自定义类创建的列表?[已关闭]

quhf5bfb  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(182)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
这是我运行的C++代码。

在散列中实现链接的类

struct MyHash{
    int BUCKET;
    list<int> *table;
    MyHash(int b){
        BUCKET=b;
        table=new list<int>[b];
    }

    void insert(int key){
        int i=key%BUCKET;
        table[i].push_back(key);
    }
};

void showlist(list<int> g)
{
    list<int>::iterator it;
    for (it = g.begin(); it != g.end(); ++it)
        cout << '\t' << *it;
    cout << '\n';
}

主要功能

int main(){

    MyHash mh(7);
    list<int> *myList=mh.table;
    mh.insert(10);
    mh.insert(20);
    mh.insert(30);
    mh.insert(40);

    showlist(myList);
   
    return 0;
}

这是我运行它时得到的错误:
错误:无法将“myList”从“std::__cxx11::list *”转换为“std::__cxx11::list

t40tm48m

t40tm48m1#

showlist()接受了一个list对象(并且是按值接受的,而实际上它应该是按常量引用接受的),但是你试图传入一个指向list对象数组的list*指针,这就是为什么你会得到一个错误。
您需要迭代数组,对每个数组元素调用showlist(),例如:

for(int i = 0; i < 7; ++i) {
    showlist(myList[i]);
}

相关问题