我有两个std::list
个对象:source_list
和new_list
。目标是从new_list
和source_list
开始,将position_at_source_to_adding_new_from
的对象添加到steps_between_new
。
steps
:source_list
的问题可能是简短,new_list
可能是大(或steps
到大)和std::advance(it, steps_between_new)
迭代器可以超出source_list
的范围,其范围为undefined behavior
。
如何在std::advance
之前/之后检查迭代器以确保我们在范围内?当new_list
处有更多对象可以放置它们之间的步骤时 - 需要简单地将对象添加到源列表的末尾。
PS。抱歉我的英语,很难解释不是母语。任何更正都欢迎来到我的文本。感谢。
答案 0 :(得分:2)
不要拨打advance
,只需根据需要多次拨打++iterator
。每次调用后,将迭代器与end()
进行比较。