已关闭。此问题需要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
1条答案
按热度按时间t40tm48m1#
showlist()
接受了一个list
对象(并且是按值接受的,而实际上它应该是按常量引用接受的),但是你试图传入一个指向list
对象数组的list*
指针,这就是为什么你会得到一个错误。您需要迭代数组,对每个数组元素调用
showlist()
,例如: