当我将自定义类对象添加到队列中时,通过删除将其取回。对象的内容已更改。 例如,我将购物者的优先级设置为10,然后将其添加到队列中,然后将其删除并再次检查优先级,这不会返回10.这与其他数据类型(如int)完美配合。不知道为什么它不适用于该类型。任何可能的错误来源?
//main.cpp
PriorityQueueSearch<Shopper> b;
Shopper temp(10);
b.add(temp);
Shopper removed = b.remove();
std::cout<<removed.getPriority();
答案 0 :(得分:0)
感谢您的帮助。 PriorityQueueSearch只是queue(ArrayQueue类)的数组实现的子类。 Shopper只是将随机优先级作为其变量之一。
错误发生在重载运算符中。显然,当我想重载比较运算符(==)时,我正在重载赋值运算符(=)。在函数原型中添加额外的'='可以解决问题。
对自己的建议是密切关注我正在输入的内容。