1. 程式人生 > >C++ STL使用,以及注意事項

C++ STL使用,以及注意事項

C++ STL的vector容器在clear()之後不會釋放記憶體,需要 swap(empty vector),這是有意為之(C++11 裡增加了 shrink_to_fit() 函式)。不要記成了所有STL容器都需要swap(empty one)來釋放記憶體。事實上其他容器(map/set/list/deque)都只需要clear()就能釋放記憶體。只有含 reserve()/capacity() 成員函式的容器才需要用swap來釋放空間,而C++裡只有vector和string這兩個符合條件。實際使用中,vector在小資料量(可能千以內吧)時,遍歷、查詢、新增刪除,都是很快的,完全可以選擇它。