代码编织梦想

今天手撕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 *>。嘿嘿,解决啦,跑通啦,还是指针好用!

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/KatherineHuang/article/details/130426349