c2064 项不会计算为接受1个参数的函数(unordered-爱代码爱编程
今天手撕A*算法的时候,遇见了以下报错:
三个错误全部指向这里:
经过我的具体排查,问题出现在这两个unordered_set中:
在出现了C2064和C2056报错后,我检索到以下相关内容,但是经过我的排查,和本问题不符合:
编译器错误 C2064 | Microsoft Learn
接着,我尝试从unordered_set的角度去思考问题,意识到如果key的类型设置为 pair<int, int>时,需要自己写哈希函数,否则无法用默认的哈希函数去完成哈希计算。
这里是我在网上检索到的相关unordered_set中使用pair作为键值的方法。
在c++11 的unordered_set和unordered_map中插入pair或tuple作为键值_c++set插入pair_pineappleKID的博客-CSDN博客d
我这里考虑另一种方式,因为我写的是A*算法,已经定义了Node的结构体,这个结构体中包括了要用pair<int,int>表示的位置信息,我直接改用unordered_set<Node *>。嘿嘿,解决啦,跑通啦,还是指针好用!