C++ 如何访问某种类型的迭代器?
我有一些代码:C++ 如何访问某种类型的迭代器?,c++,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 !=
#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*const*”无效
变量
input\u list\u limitions
是指向其他列表的指针列表。这意味着迭代器“指向”一个指向列表的指针,因此当您取消引用迭代器(使用一元*
或->
)时,您有一个指针,而不是一个实例。您需要进行双解引用才能调用begin
和end
函数,如
(*location)->begin()
说明:
*location
取消对迭代器的引用,迭代器为您提供指向std::list
的指针。然后使用->
运算符取消指针引用。请将代码简化为再现问题的最小自包含示例。还要指出错误发生在哪一行。哪个方法返回常量迭代器?@user3706947如果要确保获得常量迭代器,请使用and。是否确定此容器包含这些方法?我找不到them@user3706947我错了,这个错误实际上是别的,更新了我的答案