暫時在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...