結束我已在相同類型的兩個矢量,如下所示:如何將一個向量的第一元素移動到另一個
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
那麼沒有必要一次一個「擦除」每個項目(這是您按照順序執行的二次時間)。最後只需清除矢量。或者什麼都不做。 –