vector:可變大小陣列。支援快速隨機訪問。在尾部之外插入或刪除較慢
deque:雙端佇列。支援快速隨機訪問,在頭尾插入和刪除快
list:雙向鍊錶。只支援雙向順序訪問。插入刪除快
forward_list:單向鍊錶,僅能單向順序訪問
array:固定大小陣列。支援快速訪問。不能新增或刪除。定義時應指定容器大小,如:array
string:與vector類似,儲存字元。
seq.assign(b,e); //b和e為迭代器,將seq替換為b和e所表示範圍中的元素,不能指向seq中元素
seq.assign(il); //將seq中元素替換為il中元素
seq.assign(n,t); //將seq中元素替換為n個值為t的元素
push_back(t) //在尾部建立乙個值為t的元素,返回void
emplace_back(args) //在尾部建立乙個由args建立的元素,返回void
push_front(t) //在頭部建立,vector和string不支援
insert(p,t) //在迭代器p指向的元素之前建立乙個值為t的元素,返回新新增的元素的迭代器
emplace(p,args) //同上
insert(p,n,t) //在迭代器p之前插入n個值為t的元素,返回指向新新增的第乙個元素的迭代器
insert(p,b,e) //將b和e指定範圍內元素插入到迭代器p指向的元素之前,b和e不能指向自己的元素。
返回指向新新增的第乙個元素的迭代器
insert(p,il) //il為花括號包圍的元素值列表,將這些給定值插入到p之前,返回新新增的第乙個迭代器。
pop_back() //刪除尾元素,若列表為空則函式行為未定義,返回void
pop_front() //刪除首元素,vector和string不支援
erase(p) //刪除迭代器p所指定的元素,返回乙個紙箱被刪元素之後元素的迭代器,
//若p指向尾元素,則返回尾後迭代器。若p為尾後迭代器,則函式行為未定義
erase(b,e) //刪除迭代器b和e所指定範圍內的元素,返回乙個指向最後乙個被刪元素的迭代器。
//若e為尾後迭代器,則返回尾後迭代器
clear() //清空容器,返回void
before_begin() //返回首前迭代器,即煉表頭指標
cbefore_begin() //返回const型別首前迭代器
insert_after(p,n,t) //在迭代器p後插入n個元素t,n可以不用,返回乙個指向最後乙個插入元素的迭代器
insert_after(p,b,e) //在p之後插入b到e的元素
insert_after(p,il) //在p後插入il,il為花括號列表
emplace_after(p,args) //使用args在p指定的位置之後建立乙個元素,返回指向這個新元素的迭代器
erase_after(p) //刪除p指向的位置之後的元素,返回指向被刪元素之後元素的迭代器
erase_after(b,e) //刪除b之後(不含b)到e之間的元素
resize(n) //調整容器大小為n,新新增的初始化為0,多的丟棄,不適用於array
resize(n,t) //調整容器大小為n,新新增的元素初始化為t
容器大小管理
capacity() // 不重新分配記憶體空間,c可以儲存的元素數量 只適用於vector和string
reserve(n) //分配至少容納n個元素的空間 只適用於vector和string
lst.merge(lst2, comp) 將來自lst2的元素合併入lst,lst和lst2必須是有序的。
元素將從lst2中刪除,comp預設為<。
lst.remove(val) 呼叫erase刪除掉與給定值相等的元素
lst.remove_if(pred) 刪除謂詞為真時的元素
lst.reverse() 反轉元素的順序
lst.sort(comp) 排序,預設為<
lst.unique() 刪除同一值的連續拷貝,預設為 == ,或者使用給定的二元謂詞。
splice成員
lst.splice(args)或flst.splice_after(args)
( p ,l st2 ) p是lst的迭代器或flst的首前迭代器,將lst2所有元素移動到lst的p之前或flst的p之後。
並將lst2中元素刪除,lst和lst2不能是同一鍊錶
( p , lst2 , p2) p2是lst2的有效迭代器,將p2所指元素移動到lst,或將p2之後元素移動到flst。lst可以相同
( p , lst2 , b , e ) b和e是p2的合法範圍,將給定範圍元素移動,lst2可以相同,但是p不能在相同範圍。
C 順序容器
一 順序容器型別 順序容器 vector list deque 介面卡 stack queue priority queue 使用這些容器都必須使用相應的標頭檔案 二 容器元素初始化 cc 建立乙個名為c的空容器 cc c2 建立容器c2的副本 cc b,e 建立c,其元素是迭代器b和e的範圍內的副...
C 順序容器
1 概述 乙個容器就是一些特定型別物件的集合。順序容器型別 描述vector 可變大小陣列,支援快速訪問,在尾部之外的地方插入或刪除時可能很慢 deque 雙端佇列。支援快速訪問,在頭尾插入刪除會很快。list 雙向列表。只支援雙向順序訪問。插入刪除很快 forward list 單向列表。只支援單...
C 順序容器
一 各個順序容器效能差異主要體現在一下兩個方面 1.在容器中任意位置新增和刪除元素的代價 2.隨機訪問容器中元素的代價 vector list deque forward list array string vector是可變大小陣列,支援快速隨機訪問,在尾部插入和刪除元素較為方便 list是雙向鍊...