实现类图我需要这样的东西
unordered_map <Node, list<unordered_set<Edge<Node>>::iterator>> graph;
为每个顶点存储邻接表。但是,它说 list<unordered_set<Edge<Node>>::iterator>
不是有效参数。
我应该如何实现?
这里的错误:
Error 2 error C2923: 'std::unordered_map' :
'std::list<std::unordered_set<Edge<Node>>>::iterator'
is not a valid template type argument for parameter '_Ty'
我正在使用带有标准编译器(兼容 c++11)的 VS2012 Express
template<class Node>
class Graph {
}
template<class Node>
class Edge {
}
最佳答案
由于Node
是模板参数,所以在指定依赖于它的类型时需要使用typename
:
unordered_map <Node, list<typename unordered_set<Edge<Node>>::iterator>> graph;
^^^^^^^^
关于c++ - 迭代器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114110/