首页 > 解决方案 > 试图在列表中的某个索引处插入对象(C++)

问题描述

我试图在某个索引处的对象列表中插入一个对象,但我的迭代器似乎不想被添加到一个 int 中。这是我的代码:

list<Node> nodes;
. . .
// filling list 
. . . 
void DiffLine::addNodeAt(int i, Node node) {
std::list<Node>::iterator it;
it = nodes.begin() + i;
nodes.insert(it, node);
}

这是我收到的错误消息

错误(活动) E0349 没有运算符“+”匹配这些操作数

我究竟做错了什么 ?

标签: c++listobjectiterator

解决方案


std::list 不是随机访问的,因此它的迭代器不是有意随机推进std::advance()如果您真的想推进它,标题中有<iterator>,只需准备等待线性时间。并考虑使用std::vector.


推荐阅读