順序容器的一些操作

2022-08-17 18:30:29 字數 1395 閱讀 5502

新增元素

1.push_back

向尾部新增乙個元素,除了array與forward_list不支援外,其餘順序容器皆支援

形式:c.push_back(t)

注:把乙個物件新增到容器中,實際上放入的是物件的拷貝值而不是物件本身,隨後對容器中元素的任何改變都不會影響原始物件。

2.push_front

將元素插入到容器頭部,vector不支援

形式:c.push.front(t)

3.insert

接受乙個迭代器和值作為引數,將元素插入到迭代器所指定的位置之前,迭代器可以指向容器任何位置,包括尾部之後的下乙個位置

形式:c.insert(iter,t)//iter是迭代器,t為值

c.insert(iter,元素個數,t)

c.insert(iter,v.iter1,v.iter2)//接受一對迭代器,把該對迭代器所指的內容插入到iter指示的位置之前

返回值:返回乙個迭代器,指向(第乙個)新加入的那個元素。

注:雖然某些容器不知push_front,但是它們對於insert操作並無限制,所以可以用insert操作將元素插入容器起始位置,而不用擔心容器是否支援push_front

4.emplace

emplace_front,emplace,emplace_back分別對應push_front,insert,push_back,這些操作構造元素而不是拷貝元素,當呼叫乙個emplace成員函式時,是將引數傳遞給元素型別的建構函式,emplace使用這些引數構造出元素再新增到容器

形式:c.emplace_back(構造物件的形參)"978-050909",23,14.99),容器的元素型別為某個類,該類的建構函式的形參為"978-050909",23,14.99

訪問元素

c.front()

c.back()

c[n]

刪除元素

c.pop_back()

c.pop_front()

c.erase(p)//刪除迭代器p指定的元素,返回乙個指向被刪除元素之後的迭代器

c.erase(b,e)//刪除迭代器b和e所指定的範圍的元素,返回指向最後被刪除元素之後元素的迭代器

c.clear()//刪除c中的所有元素,返回void

其它成員函式

c.size()

c.empty()

swap(c1,c2)//交換兩個容器c1,c2中的元素,c1,c2必須具有相同型別

c.assign(v.iter1,v.iter2)//用迭代器所指定的範圍的元素替換左邊容器的所有元素,允許容器型別不同和值型別,但值須相容

c.assign(元素個數,元素值)//替換

靜態順序表的一些操作

靜態順序表.h ifndef shunxubiao h define shunxubiao h define max size 10 typedef int datatype 靜態順序表 typedef struct seqlist seqlist,pseqlist void initseqlist...

C 中一些容器的基本操作

vector 向量 可變陣列vectorreference operator size type n 陣列方式訪問元素 reference at size type n 函式方式訪問元素 void push back const value type val 末尾插入 void pop back 末...

stl一些容器

deque a deque deque n,elem n個elem初始化的deque deque beg,end 雙指標初始化 v.push front 取出第乙個元素 棧,先進後出。通過top 方法返回棧頂元素,push 壓棧,pop 出棧。效率很高,不能遍歷,不支援隨機訪問。q.front q....