對於大多數容器,iterator
類型爲容器中的值提供讀寫訪問權限,類型爲const_iterator
提供只讀訪問權限。但是,對於std::set<T>
,迭代器類型不能提供讀寫訪問權限,因爲修改集合中的值(可能)會中斷容器不變量。因此,在std::set<T>
中,iterator
和const_iterator
都提供只讀訪問權限。std :: set :: iterator和std :: set :: const_iterator之間是否存在操作差異?
這使我想到我的問題:你可以用std::set<T>::iterator
做什麼和你可以用std::set<T>::const_iterator
做什麼有什麼不同?請注意,在C++ 11中,容器的操作方法(例如,erase
)可能需要參數const_iterator
。