經調試發現,在一個for循環中,刪除遍歷中的vector元素,假設有如下聲明:
std::vector<std::string> test;
std::vector<std::string>::iterator it;
用test.erase(it++),在刪除最後一個元素後,it!=test.end()並不爲true,
而改用it = test.erase(it)時,it!=test.end()爲true,
雖然兩種刪除後,it指向的內容都一樣。
搞不懂,是以銘記。
經調試發現,在一個for循環中,刪除遍歷中的vector元素,假設有如下聲明:
std::vector<std::string> test;
std::vector<std::string>::iterator it;
用test.erase(it++),在刪除最後一個元素後,it!=test.end()並不爲true,
而改用it = test.erase(it)時,it!=test.end()爲true,
雖然兩種刪除後,it指向的內容都一樣。
搞不懂,是以銘記。