cpp std :: list使用步进添加新元素

时间:2012-05-23 09:16:40

标签: c++ list sorting

我有两个std::list个对象:source_listnew_list。目标是从new_listsource_list开始,将position_at_source_to_adding_new_from的对象添加到steps_between_new

stepssource_list的问题可能是简短,new_list可能是大(或steps到大)和std::advance(it, steps_between_new)迭代器可以超出source_list的范围,其范围为undefined behavior

如何在std::advance之前/之后检查迭代器以确保我们在范围内?当new_list处有更多对象可以放置它们之间的步骤时 - 需要简单地将对象添加到源列表的末尾。

PS。抱歉我的英语,很难解释不是母语。任何更正都欢迎来到我的文本。感谢。

1 个答案:

答案 0 :(得分:2)

不要拨打advance,只需根据需要多次拨打++iterator。每次调用后,将迭代器与end()进行比较。