实现类图我需要这样的东西
unordered_map <Node, list<unordered_set<Edge<Node>>::iterator>> graph;
存储每个顶点的邻接列表。但是,它说list<unordered_set<Edge<Node>>::iterator>
不是有效参数
我应该如何实现这个?
这里的错误:
错误2错误C2923:&#39; std :: unordered_map&#39; :
的有效模板类型参数'std::list<std::unordered_set<Edge<Node>>>::iterator'
不是参数&#39; _Ty&#39;
我使用VS2012 Express和标准编译器(兼容c ++ 11)
template<class Node>
class Graph {
}
template<class Node>
class Edge {
}
答案 0 :(得分:4)
由于Node
是模板参数,因此在指定依赖于它的类型时需要使用typename
:
unordered_map <Node, list<typename unordered_set<Edge<Node>>::iterator>> graph;
^^^^^^^^