STL暫時小結

2021-10-20 02:32:15 字數 2927 閱讀 4376

暫時在stl告一段落,用oj上的題目來告一段落小結,以後抽空補充了

第一題 詞典

知識點:對map的使用:

find方法:用find函式來定位資料出現位置,它返回的乙個迭代器,當資料出現時,它返回資料所在位置的迭代器,如果map中沒有要查詢的資料,它返回的迭代器等於end函式返回的迭代器;

cin.get 儲存正在讀取的字元;

cin.putback 將讀取的字元放回去,讓別人也可以讀;

cin.get 和 cin.putback在這裡的使用的意思是我先讀取輸入的第乙個字元,判斷它是不是回車,如果是回車跳出迴圈,不是則進入迴圈,然後把這個讀取的字元放回去,防止後面的讀不到這個字元。

#include

#include

#include

#include

#include

#include

using

namespace std;

map m;

map::iterator it;\\ 指標

string a, b, c;

char tmp;

intmain()

while

( cin >> c )

return0;

}

第二題

list

對list的使用:

push_back()

merge

unique

#include

#include

#include

#include

using

namespace std;

string s;

int id1, id2;

list<

int> lis[

200010];

intmain()

else

if( s ==

"merge"

) \\merge id1 id2——合併序列id1和id2中的數,並將id2清空

else

if( s ==

"unique"

) \\去掉序列id中重複的元素

else

else

cout << endl;}}

return0;

}

第三題

setmultiset :可以插入完全相同的兩條記錄

set:不可以插入完全相同的兩條記錄

insert

count

erase

#include

#include

using

namespace std;

string s;

int n;

int x;

multiset<

int> a; \\操作

set<

int> b; \\儲存 判斷

intmain()

else

if( s ==

"ask"

)else

}return0;

}

第四題

熱血格鬥場

對map的使用:

lower_bound:返回第乙個大於等於該元素的下標

upper_bound: 返回第乙個大於該元素的下標

都是利用二分查詢的方法在乙個排好序的序列中進行查詢的

不存在則返回end

pair的使用

#include

#include

#include

using

namespace std;

multimap<

int,

int> member;

multimap<

int,

int>

::iterator i, j;

int n;

intmain()

else

if( i == member.

end(

)) \\ 如果沒找到

else

printf

("%d %d\n"

, id, adver )

; member.

insert

( pair<

int,

int>

(power, id));

}return0;

}

第五題

冷血格鬥場

#include

#include

#include

#include

#include

using

namespace std;

//如果出現實力值相同的兩個人,那麼只儲存結點號較小的

map<

int,

int>m;

//實力值,id號

int n;

intmain()

//特判

else

if(it==m.

end())

else

elseif(

abs(

(it-

>first)

-x)==

abs(x-xx)

) cout<" "<<

min(iid,it-

>second)

if(m.

find

(x)!=m.

end())

else m[x]

=id;

}return0;

}

以後再改改,有錯誤的地方還請批評指正

STL函式小結

vectora 100 vector的定義 a.size 讀取陣列的大小 a.resize 改變陣列大小 a.pushback 向尾部新增元素 a.popback 刪除最後乙個元素a 0 獲得第乙個元素sets 定義 begin 返回set容器的第乙個元素 end 返回set容器的最後乙個元素 cl...

STL中的map multimap小結

1 使用map multimap之前必須包含標頭檔案 include並且和所有的關聯式容器一樣,map multimap通常以平衡二叉樹來完成 2 namespace std 第乙個template引數被當作元素的key,第二個當作元素的value。key value必須具備assignable和c...

STL自定義排序小結

我們要先明白在哪個地方需要使用自定義排序 sort對vector容器排序時,第三個引數為乙個函式,函式內容即為排序的要求。1 當對可直接比較變數排序時,預設為公升序 include using namespace std 排序函式,自定義為降序 bool cmp2 const int a,const...