gpt4 book ai didi

c++ - 使用谓词作为比较函数时出错

转载 作者:行者123 更新时间:2023-11-28 06:52:36 25 4
gpt4 key购买 nike

我定义了我的 map像这样:

std::map<Order*, OrderItems, SortOrders>

这是SortOrders :

class SortOrders {
public:
bool operator() (const Order& x, const Order& y) const { return x.id() < y.id(); }
};

为什么会出现此错误?

error: invalid use of incomplete type ‘const class Order’
bool operator() (const Order& x, const Order& y) const { return x.id() < y.id(); }
^

最佳答案

您的 map 以 Order* 为键,但您的谓词需要 Order(或者实际上是 const Order&)。这些不是兼容的类型。

要么更改谓词以接受 Order*(或 const Order*),要么更改映射以按值存储 Order 对象并不是通过指针。

查看错误本身的文本 - SortOrders 是否真的看到了 Order 的完整定义?这很可能意味着,您是否在 #include 中定义了 Order 的头文件?

关于c++ - 使用谓词作为比较函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23657938/

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