使用C++的unordered_map類型時,我們經常要根據關鍵字查找,並移除一組映射,在Java中直接用remove即可,而STL中居然沒有實現remove這個函數,還要自己寫循環來查找要刪除項,然后用erase來清除,我也是醉了,參見下面代碼:
vector<A*> v1; // remove A *a1 for (vector<A*>::iterator it = v1.begin(); it != v1.end(); ++it) { if (*it == a1) v1.erase(it); } unordered_map<int, B*> m; // remove B *b1 for (unordered_map<int, B*>::iterator it = m.begin(); it != m.end(); ++it) { if (it->second == b1) m.erase(it); }
再加上之前那篇博客C++ Split string into vector<string> by space里面提到的C++的STL也沒有實現split函數,如此這般,我感覺改攻Java很有必要啊~~