迭代器列表

时间:2013-10-01 10:40:38

标签: c++ stl iterator

实现类图我需要这样的东西

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 {
}

1 个答案:

答案 0 :(得分:4)

由于Node是模板参数,因此在指定依赖于它的类型时需要使用typename

unordered_map <Node, list<typename unordered_set<Edge<Node>>::iterator>> graph;
                          ^^^^^^^^