C++ vector使用erase()刪除元素時的注意事項

在使用erase()刪除元素時,若是不清楚該函數實現原理,可能會形成莫名的bug,函數 正常狀況下使用for循環查找vector中元素是否知足條件時通常會用錯誤演示中的代碼,但這種狀況可能會致使段錯誤,緣由在於,若是it當前爲最後一個元素的迭代器,那麼將會返回無效地址,此時將執行it++;正是這條語句致使的地址非法即段錯誤,所以要解決該問題,那麼就須要將it回退到n-1處的地址,或者修改for循環
相關文章
相關標籤/搜索