gpt4 book ai didi

c++ - 如何检查类数组的元素是否为空? [C++]

转载 作者:行者123 更新时间:2023-11-28 02:37:40 25 4
gpt4 key购买 nike

对于我最近的任务,我需要创建一个包含股票的哈希表,这些股票被封装在一个类中。为了避免碰撞,我需要使用线性探测。然而,我遇到的问题是;是我无法测试数组(即哈希表)的元素是否为空。

下面是从几个文件中聚合的一些代码,但这只是为了让您了解发生了什么。

class Stock{

friend class HashMap

}

class HashMap{

bool get() //this function is used for putting new stocks into the table
private:
struct Slot {
Stock slotStock;
}
Slot *slots;
}

在 get() 函数中

while(slots[index] != NULL)

这会报错:没有运算符“!=”匹配这些操作数 HashMap::Slot != int

还有什么替代方法可以让我检查插槽是否为空?

数组是动态分配的。

编辑:当我初始化数组时,它是使用默认构造函数为数组的每个元素创建一个对象,还是将元素留空?

最佳答案

如果你有一个类型为 X 的对象数组,没有一个插槽是“空的”。它们都包含一个 X 类型的对象.要表示一个空对象,它需要是存储在数组中的类型的可能状态。例如,你可以有 boost::optional<Slot> , 或 std::unique_ptr<Slot> .否则,您可以将状态直接编码到您的 Slot 中。类(例如,带有 bool 成员)。

关于c++ - 如何检查类数组的元素是否为空? [C++],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964149/

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