C 順序容器

2022-08-30 07:39:08 字數 2394 閱讀 6556

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是雙向鍊...