如何访问某种类型的迭代器?

时间:2014-08-19 06:29:35

标签: c++

我有一些代码:

#include "NodesEdgesTriangles.h"


Triangles Chain_Triangulation( const ListLimitations& input_list_limitations )
{
    Edges edges_of_planar_graph;
    for ( Const_It_ListLimitations location = input_list_limitations.begin(); location !=    input_list_limitations.end(); ++location )
        //ERROR LINE
        edges_of_planar_graph.insert( edges_of_planar_graph.end(), location->begin(), location->end() );

}
   Triangles chain_triangulation;

   return chain_triangulation;
}

编译器给我错误:

  

错误C2839:无效的返回类型'std :: list< _Ty> * const *'用于重载'运算符 - >'

1 个答案:

答案 0 :(得分:0)

变量input_list_limitations是指向其他列表的指针列表。这意味着迭代器“指向”指针到列表,所以当你取消引用迭代器(使用一元*->)时,你有一个指针,而不是一个实例。您需要进行双重引用才能调用beginend函数,例如

(*location)->begin()

说明:

*location取消引用迭代器,它为您提供指向std::list的指针。然后->运算符用于取消引用指针。