1. 程式人生 > >STL 迭代器失效和運算子過載容易錯誤問題

STL 迭代器失效和運算子過載容易錯誤問題

1.一定要小心迭代器失效

1) 容器本身是空的,使用迭代器前,需要檢驗迭代器是否有效。

2) 容器本身增刪失效,erase返回的是下一個迭代器,容器改變了插入刪除了那麼原來的迭代器就很容易失效。

3)容器存放的資料增刪,容器內儘量存放的是結構體,而不是指標,存放指標很容易導致那塊記憶體刪掉了而變成存放的是野指標了。

2. STL結構體裡面包含有 STL容器,那麼不能使用memset來初始化

3.運算子過載要非常小心,需要考慮全面

小心二叉樹型別容器排序查詢用到的運算子<過載的寫法,序列型別容器排序用到的<運算子過載,及其序列查詢使用用std:find用到的==運算子過載。