给定迭代器替换 std::list 对象

Posted

技术标签:

【中文标题】给定迭代器替换 std::list 对象【英文标题】:Replacing std::list object given an iterator 【发布时间】:2011-10-13 19:13:30 【问题描述】:

给定一个指向 std::list 的迭代器,如何替换迭代器引用位置的对象?目前我能想到的就是用新对象和迭代器调用插入(在迭代器引用的元素之前插入新对象),然后调用擦除删除要替换的对象。有没有更迂回的方式来完成替换?

【问题讨论】:

【参考方案1】:

有什么问题:

(*it) = obj;

obj 是哪里的替换值?

【讨论】:

抱歉,只有这样的日子……谢谢!

以上是关于给定迭代器替换 std::list 对象的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 std::list 中移动元素而不会使迭代器或引用无效,但是如何?

std :: list.end()没有返回“past-the-end”迭代器

为啥允许 std::unordered_map::rehash() 使迭代器无效?

stl的erase()陷阱--迭代器失效总结

序列容器-元素只能按顺序访问

迭代 std::list 时擦除