ZBLOG

Line 12: Char 30: error: invalid use of non-static data member 'pos' 12 | unordered_map res;

从错误信息来看,代码中使用了非静态数据成员 pos,这是无效的。

在 C++ 中,如果要在 unordered_map 的值类型中存储自定义结构或类对象,需要确保该类型具有可哈希化和相等比较的能力。对于自定义类型,可以通过提供一个自定义哈希函数和相等比较函数来实现这一点。

首先,请确保你的 pos 类已经正确实现了哈希函数和相等比较操作符。然后,根据你的需求,在 unordered_map 的模板参数中指定正确的键类型和值类型。

下面是一个示例:

#include <iostream>
#include <unordered_map>

struct pos {
    int x;
    int y;

    // 自定义哈希函数
    struct HashFunc {
        std::size_t operator()(const pos& p) const {
            return std::hash<int>()(p.x) ^ std::hash<int>()(p.y);
        }
    };

    // 自定义相等比较操作符
    bool operator==(const pos& other) const {
        return (x == other.x && y == other.y);
    }
};

int main() {
    std::unordered_map<ListNode*, pos, pos::HashFunc> res;

    // 在此处进行 unordered_map 操作...

    return 0;
}

请根据你的实际需求对代码进行修改,并确保 pos 类型具有正确的哈希函数和相等比较操作符。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=12941

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?