#include<iostream>
#include<set>
#include<list>
#include<bitset>
using namespace std;
class CMagicPath
{
public:
list<int> path;
bitset<27> MagicPathPointSet;
string pathShape;
public:
CMagicPath(){};
void printPath()const
{
list<int>::iterator iter;
for(iter=path.begin();iter!=path.end();iter++)
{
cout<<(*iter)<<',';
}
cout<<endl;
}
};
int main()
{
system("pause");
return 0;
}
编译器在这一句报错:for(iter=path.begin();iter!=path.end();iter++)
错误为: no match for 'operator=' in 'iter = ((const std::list<int, std::allocator<int> >*)this)->std::list<_Tp, _Alloc>::begin [with _Tp = int, _Alloc = std::allocator<int>]()'
我在使用A*算法时也出现上面问题,网上找到解决方法
①是去掉函数中的const,结果程序报错显示
解决方法② :定义iterator改为const_iterator 完美解决