一種數據結構,如list,vector,和deques ,以模板類的方法提供。爲了訪問容器中的數據,可使用由容器類輸出的迭代器;算法
提供了訪問容器中對象的方法。例如,可使用一對迭代器指定list或vector中的必定範圍的對象。迭代器就如同一個指針。事實上,C++的指針也是一種迭代器。可是,迭代器也能夠是那些定義了operator*()以及其餘相似於指針的操做符地方法的類對象;數組
是用來操做容器中的數據的模板函數。例如,STL用sort()來對一個vector中的數據進行排序,用find()來搜索一個list中的對象,函數自己與他們操做的數據的結構和類型無關,所以他們能夠在從簡單數組到高度複雜容器的任何數據結構上使用;數據結構
底層數據結構爲數組 ,支持快速隨機訪問函數
vector是咱們用到最多的數據結構,其底層數據結構是數組,操作系統
當咱們新建一個vector的時候,會首先分配給他一片連續的內存空間,當經過push_back向其中增長元素時,若是初始分配空間已滿,就會引發vector擴容,其擴容規則在gcc下以2倍方式完成:首先從新申請一個2倍大的內存空間;而後將原空間的內容拷貝過來;最後將原空間內容進行釋放,將內存交還給操做系統;指針
底層數據結構爲雙向鏈表,支持快速增刪對象
底層數據結構爲一箇中央控制器和多個緩衝區排序
底層通常用list或deque實現,封閉頭部便可,不用vector的緣由應該是容量大小有限制,擴容耗時內存
底層通常用list或deque實現,封閉頭部便可,不用vector的緣由應該是容量大小有限制,擴容耗時(stack和queue實際上是適配器,而不叫容器,由於是對容器的再封裝)it
底層數據結構通常爲vector爲底層容器,堆heap爲處理規則來管理底層容器實現
底層數據結構爲紅黑樹,有序,不重複
底層數據結構爲紅黑樹,有序,可重複
底層數據結構爲紅黑樹,有序,不重複