演算法筆記6 STL

2021-09-12 16:24:50 字數 1048 閱讀 8466

它可以理解為乙個可變陣列,長短可變。string與vector支援迭代器+a,訪問

特點:自動去重+遞增排序

(1)直接相加減

(2)直接用==,>,《比較,規則:字典序

(3)length

(4)insert(pos,string) ,pos的範圍(0,length-1)

string str="xyzw"

str.insert(2,"abc"); //在str[2]中插入abc

結果

xyabczw
(5)find()

str1.find(str2)

//當str2是str1的子串時,返回其在str1第一次出現的位置;不在則返回string::npos(-1)
str1.find(str2,4);

//從str1的4號位置(最小為0),開始匹配str2,返回值與上面相同
(6)replace()

str1.replace(3,5,str2)

//把str1中3號位起,長度為5 的用str2 來替換
str1.replace(it1,it2,str2)

//把str的迭代器[it1,it2)範圍的子串用str2代替
1.map可以作為鍵值對映,map,ti,t2可以是任何型別

mapmp1;

mapmp2;

2.map會以鍵從小到大排序,因為內部是以紅黑樹實現的(set也是),建立對映過程自動實現排序功能

3.map常見用途

需要建立字串與整數之間對映的題目

判斷大整數或者其他型別資料是否存在的題目,將map當bool用陣列用

字串與字串之間可能用到

延伸:若乙個鍵對應多種值,只能用multimap

(6)STL演算法之轉換

2 轉換 函式transform 實現了將源區間的元素複製到目標區間,也可以修改元素 合併兩個區間。對源區間 first1,last1 的每乙個元素均呼叫函式 op elem 結果寫入以result為起始位置的目標區間,函式返回值是最後乙個被轉換元素的下一位置。template outputiter...

演算法筆記6 STL 2

1.用途 實現廣度優先搜尋時,呼叫queue。注意使用front pop 函式前要用empty 判斷佇列是否為空。2.front是指向隊首的前乙個位置,rear是指向隊尾的位置 3.size rear front,size是元素的個數 判空的條件是 front rear 4.q rear x 入隊 ...

STL 演算法 筆記 排序演算法

這些演算法都需要隨機訪問迭代器的支援,所以不支援list。pred 引數 預設排序準則為 operator 1.nth element templatevoid nth element ranit first,ranit nth,ranit last templatevoid nth element...