结束我已在相同类型的两个矢量,如下所示:如何将一个向量的第一元素移动到另一个
std::vector<Task*> ToRun;
std::vector<Task*> Completed;
当Task
完成时,它需要被自动从移动ToRun
将容器载入Completed
载体。
托伦向量包含TaskOne TaskTwo TaskThree ... TaskN
完成向量包含nothing
通过ToRun
向量第一环路之后,两种载体应该如下:
托伦载体含有TaskTwo TaskThree ... TaskN
完整载体包含TaskOne
通过ToRun
向量执行第二循环应该如下:
托伦载体包含TaskThree ... TaskN
完整载体包含TaskOne TaskTwo
我有下面的代码,但我接收艾尔文以下错误:
代码片段:
我试图寻找this和this SO回答不过我有没有运气。从发生的事情来看,我认为迭代器在移动front元素之后指向null。
我应该尝试将任务从一个容器移到另一个容器,然后是remove
而不是擦除?
为什么“擦除”?也就是说,用于其他**的“ToRun”是什么? –
@ Cheersandhth.-Alf'ToRun'只是执行特定任务的向量。任务的数量取决于配置文件,因此可能会有很多或者一些。我对STL容器和迭代器非常缺乏经验,所以我一直在探索我的选项 – Sean
那么没有必要一次一个“擦除”每个项目(这是您按照顺序执行的二次时间)。最后只需清除矢量。或者什么都不做。 –