C STL常用容器 一

2021-09-16 19:04:44 字數 2415 閱讀 3162

4/4/2019 4:50:15 pm

2 set:集合

3 string

開始時候引入

#includeusing namespace std;
typename 可以是 int double char node

vectorname;
vector陣列 其中 arrayname[0]~arrayname[size-1]都是vector容器

vectorarrayname[size]
(1)下標訪問

vi[index]
(2)迭代器

取vi首位址

vector::iterator it = vi.begin();

typename i =*it;

(1)push_pack(x)新增乙個元素

(2)pop_back()刪除最後乙個

(3)size()

(4)clear()

(5)insert 向任意迭代器位置插入

//vi 初始為 1 2 3 4 5 

vi.insert(vi.begin()+2, -1)

//此時 1 2 -1 3 4 5

(6)erase()

//vi 初始化 1 2 3 4 5

vi.erase(vi.begin()+3)

//此時 1 2 3 5

earse(first,last) 刪除[first,last)內元素

vi.erase(vi.begin()+1,vi.begin()+4)

//刪除vi[1] vi[2] vi[3]

內部自動排序,不含有重複元素

setsetname;
不能通過下標訪問 只能迭代器列舉

for(set::iterator it=st.begin(); it!= st.end(); it++)
(1)insert

插入後自動排序去重

(2)find

查詢某個元素

(3)erase size clear

同vector

c語言中用char放字串,stl中有string「# include」

string str;

string str="abcd";

(1)下標訪問

string str = "abcd";

str[0];//a

(2)迭代器 同vector可對迭代器加減某個數字

(1) += 可以拼接兩個string

(2)< <= > >= 比較字典序

(3)length() size()

(4)insert()

//兩種

//插入指定位置

insert(pos,string)

//待插入字串被分割插入pos

insert(pos,it_first,it_end)

(5)erase

//刪除單個元素

str.erase(it)

str.erase(str.begin()+1)

//刪除乙個區間內所有元素

str.(it_first,it_end)

//刪除乙個區間內所有元素

str.erase(pos,length)

//初始化abcdefg 刪除3號開始的2個字元 de

str.erase(3,2)

(6)substr

substr(pos,len)

返回從pos位置開始、長度為len的子串

//初始化 abcdefgh

//返回 bcdef

str.substr(1,5)

(7)find返回string中第一次出現的位置

//匹配失敗是返回值

string::npos

//初始化abcdefg

//值為0

str.find("abc")

//值為string::npos

str.fing("xyz")

(8)repalce()

//位置 長度 替換為 str2

str.replace(pos,len,str2)

//初始化「abcdefg」

//返回ahellodefg bc替換為hello

str.replace(1,2,"hello")

C STL常用容器(一)

使用時需要包含標頭檔案 include 1.初始化vector vec 16 定義了已知長度16的vector vector vec 64,2 定義了初值為2長度64的vector vector vec a 用a向量來建立向量 vector vec a.begin i,a.begin j 定義了值為...

C STL 常用容器 list

鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。相較於vector的連續線性空間,l...

C STL容器學習(一)

容器 一些特定型別物件的集合 順序容器 vector list forward list vector 可變大小陣列,支援快速隨機訪問 list 雙向鍊錶,只支援雙向順序訪問 forward list 單向鍊錶,只支援單向順序訪問 迭代器 迭代器 iterator 是一種物件,它能夠用來遍歷標準模板...