c++ - 试图在列表中的某个索引处插入对象(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 没有运算符“+”匹配这些操作数
我究竟做错了什么 ?
解决方案
std::list 不是随机访问的,因此它的迭代器不是有意随机推进的。std::advance()
如果您真的想推进它,标题中有<iterator>
,只需准备等待线性时间。并考虑使用std::vector
.
推荐阅读
- list - 在 dart 中访问 2d 列表的“列”
- java - 无法使用 Quarkus 模拟,NullPointer 异常并且找不到相关导入
- git - 如何在不通过中间服务器直接 SSH 或 HTTPs 访问的情况下将本地 Git 修改推送到 Gitlab 存储库?
- powershell - 如何在命令完成并且 Powershell 返回提示时收到通知?
- java - 如何处理页面对象的继承
- javascript - 如何在将鼠标悬停在弹出框内容上时保持 ngbpopovers 保持打开状态?
- android-studio - 在 Kotlin 中验证签名 JWT.IO
- javascript - 继续质疑 JS 中的窗口大小?
- entity-framework - 自动检测断开实体的更改
- javascript - 使用递归将数组更改为对象