c++中对列表的迭代器
Iterator over a list of pairs in C++?
我定义了一个pair列表,并希望使用迭代器访问它们,示例如下。
class A{
private:
list<pair<size_type,size_type> > l_edge_;
public:
void function() const{
list<pair<size_type,size_type> >::iterator Iter_;
Iter_ = l_edge_.begin();
}
}
然而,我得到了一个编译错误。我该怎么修理它?error: no match for 'operator=' (operand types are 'const iterator
{aka const std::_List_iterator<std::pair<unsigned int, unsigned int> >}' and
'std::list<std::pair<unsigned int, unsigned int> >::const_iterator
{aka std::_List_const_iterator<std::pair<unsigned int, unsigned int> >}')
我猜你是想写一个const成员函数,而不是你在问题中复制的:
void function() const
{
Iter_ = l_edge_.begin();
}
现在,由于函数是const
, l_edge_
成员也是const,因此,begin()
返回const_iterator
而不是普通的iterator
。但这没什么关系,因为Iter_
成员也是const,所以不能赋值给。
class A
{
private:
list<pair<size_type,size_type> > l_edge_;
public:
//const member function
void function() const
{
list< pair<size_type,size_type> >::const_iterator iter = l_edge_.begin();
}
//non-const member function
void function()
{
list< pair<size_type,size_type> >::iterator iter = l_edge_.begin();
}
};
相关文章:
- 跟随整数索引列表的自定义类迭代器
- 列表的有效性在插入后开始迭代器
- C++列表迭代器
- 测试迭代器是否位于列表中的最后一个
- 当通知迭代器参数初始化为空列表的开头时,list::insert 行为是什么?
- C++不能取消引用结束列表迭代器
- 创建以向量/列表迭代器为键的映射
- 对列表中的向量使用迭代器
- 使用列表迭代器获取所有值
- 如何实现列表:<T>:迭代器?
- 将列表迭代器存储为成员
- 将列表 en 列表迭代器作为指针 C++ 传递
- 如何从该列表的元素中获取 std::list<T>::迭代器?
- 空列表迭代器比较始终为真
- 如何在给定迭代器列表的情况下从向量中删除元素
- C++迭代器列表
- 迭代器列表,用于从各种列表中收集条目
- 如何在 Map 中存储集合容器的迭代器列表
- 迭代器列表
- 操作迭代器列表+指针