stl容器之順序容器

2021-09-26 09:25:18 字數 1430 閱讀 3826

stl容器分為順序容器和關聯容器

其中順序容器最常用的由vector,list,queue

1.vector

vector: 向量容器,可以看作變長陣列,長度可根據需要自行變化。

使用的標頭檔案 #include

定義方式: vector陣列名;//vectorar;

訪問容器內資料的方式和普通陣列相同,可以用ar[i]的形式,也可以用迭代器訪問

迭代器定義:vector::iterator it;

常用的介面函式:

1.1 push_back();

push_back(x);//將x插入到最後乙個元素後面,時間複雜度o(1);

1.2 insert();

ar.insert(it,x);//向迭代器it位置前插入元素x,時間複雜度o(1)~o(n);

ar.insert(it,num,x);//向迭代器it位置前插入num個元素x,時間複雜度o(n)~o(n^2)

ar.insert(it,begin,end);//向it位置前插入從begin位置到end位置的值o(n)~o(n^2)

1.3 size();

用來獲取vector中元素個數,時間複雜度o(1)

1.4 clear();

清空vector中元素,時間複雜度o(n);

1.5 pop_back();

刪除vector中最後1個元素

1.6 erase();

刪除vector中某個元素或某個範圍內的元素

erase(position);//刪除乙個元素(position)

erase(first,last);//刪除first到last範圍內的元素

其中position,first,last都是vector迭代器

2.list

底層實現為雙向鍊錶,與向量相比,插入和刪除更高效,但不能按下標隨機訪問

使用的標頭檔案#include

push_back();//尾部插入乙個元素

push_front();//頭部插入乙個元素

size();//返回list中元素個數

sort();//給list中元素排序

pop_back();//尾部刪除

pop_front();//頭部刪除

erase();//刪除乙個元素

insert();//插入乙個元素到list中

clear();//刪除所有元素

3.queue

queue:佇列。使用的標頭檔案#include

push();//入隊

pop();//出隊

size();//返回佇列中元素的個數

empty();//判斷佇列是否為空,若為空,返回true,否則返回false

front();//返回隊頭元素(第乙個入隊的元素)

back();//返回隊尾元素(最後乙個入對的元素)

STL總結之順序容器

1.vector 動態確定長度,支援隨機訪問,array是靜態空間。然後資料結構主要是三個迭代器 普通指標即可 start 表示目前使用空間的頭 end 表示目前使用空間的尾 end of storage 表示目前可用空間的尾 動態增加大小,並不是在原空間之後接續新空間,而是以原大小的兩倍 不完全是...

STL順序容器陣列之vector

向量 動態陣列 標頭檔案 include vectorvec 中放資料型別,vec是變數名 vector vec1 5 乙個大小為5的陣列 vector vec2 5,12 乙個大小為5的陣列,以12填充 定義示例 vector iterator ite 在codeblocks中定義物件時初始化了幾...

STL順序容器之鍊錶

list雙向鍊錶 forward list向前鍊錶 單向 操作都在煉表頭 2011年新標準 略 include list 結構體 變數名 for each ls2.begin ls2.end fun list iterator ite ls2.begin ite 只能 不能 2 3 無容量概念 si...