我正在编写一个简单的滑动方 block (3x3) 求解器。 这肯定不是最好的方法,我只是生成所有可能的配置,但我不知道为什么在执行过程中我的电脑卡住,我必须手动重启。 这是主循环
while(!(tree->s==final))
{
//copy it in tree
expand_node(tree);
//check if in open then add if not
it++;
}
print_s(tree->s);
PS:我用
编译了一切g++ -Wall -Wextra -std=c++11 main.cpp
最佳答案
在您要添加到列表的基于循环的范围内:
for(auto v : open)
if(!(v.s==tree->childs[i].s))
open.push_back(tree->childs[i]);
这将导致列表增长并触发另一次迭代,直到您机器上的所有内存都用完。当您的操作系统将内存交换到磁盘时,您的机器可能不会卡住,只会变得非常慢。
关于c++ - 在 C++ 自定义树的一些迭代后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52823987/