今天真的是十分郁闷,遇到这个名为error C2039: “iterator_category”: 不是“***”的成员,上网谷哥、度娘了一番,得到的结果全是说可能是用的某个名字与库中的重合了,结果试了整整的一个下午加晚上,验证了所有的名字之后,发现问题不是这样的!!!
改后代码:
//vector<Degree> deg;//用来描述从源点source到v的最短路径上权值的上界
Degree* deg = new Degree[MAXSIZE];
priority_queue<Degree, vector<Degree>, cmp> Q(deg, deg + MAXSIZE);
改前代码:
vector<Degree> deg;//用来描述从源点source到v的最短路径上权值的上界
priority_queue<Degree, vector<Degree>, cmp> Q(deg[0], deg[MAXSIZE];
错误提示:
1>------ 已启动生成: 项目: Dijkstra, 配置: Debug Win32 ------
1> main.cpp
1>d:\program files\microsoft visual studio 10.0\vc\include\xutility(373): error C2039: “iterator_category”: 不是“Degree”的成员
1> c:\users\chenhq\desktop\dijkstra\dijkstra\degree.h(4) : 参见“Degree”的声明
1> d:\program files\microsoft visual studio 10.0\vc\include\vector(550): 参见对正在编译的类 模板 实例化“std::iterator_traits<_Iter>”的引用
1> with
1> [
1> _Iter=Degree
1> ]
1> d:\program files\microsoft visual studio 10.0\vc\include\queue(247): 参见对正在编译的函数 模板 实例化“std::vector<_Ty>::vector<_Iter>(_Iter,_Iter)”的引用
1> with
1> [
1> _Ty=Degree,
1> _Iter=Degree
1> ]
1> c:\users\chenhq\desktop\dijkstra\dijkstra\di