gpt4 book ai didi

c++ - 将迭代器用于 STL 列表数组的语法

转载 作者:太空宇宙 更新时间:2023-11-04 13:42:50 25 4
gpt4 key购买 nike

我正在尝试创建一个模板化的 HashTable 类,它使用单独链接来解决冲突。我的问题是我不知道如何遍历特定数组索引处的列表,因为我不确定语法。

我一直收到错误 C2228:'.end' 的左侧必须有类/结构/union 和错误 C2228:'.push_front' 的左侧必须有类/结构/union

我已经将我的列表声明为类的私有(private)成员,如下所示:

list<T1> **List;

并使用默认构造函数用 for 循环预填充每个索引。

这里是麻烦点:

template <typename T1>
void HashTable<T1>::Insert(T1 var)
{
int index = HashFunction(var);
List[index].push_front(var);
++LF;
cout << "Load Factor: " << LF << endl << endl;
}


template <typename T1>
void HashTable<T1>::Delete(string key)
{
int visited = 0;
list<T1>::iterator iter;
for(int i = 0; i < prime; ++i)
{
iter = List[i].begin();
while((iter != List[i].end) && ((*iter)->getKey() != key)) //While iter is not at the end of the list and while ID of iter is not equal to ID being obliterated

我做错了什么?

最佳答案

在我看来,您只需要一个列表数组。现在 List[i] 返回一个指向 list 的指针,而您可能希望 List[i] 本身就是一个 list

尝试使用

list<T1> *List;

关于c++ - 将迭代器用于 STL 列表数组的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27075253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com