gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:27:44 35 4
gpt4 key购买 nike

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

steps 的问题:source_list 可能太短而 new_list 可能太大(或 steps大)并且在执行 std::advance(it, steps_between_new) 时,迭代器可以超出 source_list 的范围,这将是 未定义的行为 .

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

附言。对不起我的英语,非母语很难解释。欢迎对我的文字进行任何更正。谢谢。

最佳答案

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

关于c++ - cpp std::list 使用步进添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10716909/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com