目前涉及到的模板只有兩種,一種是比較常用的map 另外一種是反轉函式 reverse()
map:
map函式具有一對一性質,用於不同型別的對應關係。
以下是map函式的基本用法
1> 建構函式
mapmap_name; x為key值,y為value
其中x,y可以是任意型別,如 string,char,int 彼此之間可以進行任意組合。
2> 插入函式,有以下三種插入方式,最常用的為第三種
mapmap;
map.insert(pair(x,y)(e,f);
map.insert(map::value_type(e,f));
map[e]=f;
3> 元素查詢
find()函式返回乙個迭代器指向鍵值為key的值,如果沒有找到就返回指向
map尾部的迭代器。
map::iterator itr;
itr=find(e):
if(itr==map.end())
cout<<"not find"<
else
cout<<"find it"<
4> 元素刪除,首先必須保證該元素存在。
map::iterator itr;
itr=find(e);
if(itr==map.end())
cout<<"not find"<
else
map.erase(itr);
5> map的sort函式
map函式在儲存的過程中已經按照key值的大小按公升序排列,
嚴格來說已經不需要為map排序
6>map的基本操作函式
find() 查詢函式 erase() 刪除函式
end() 返回尾部迭代器 begin() 返回頭部迭代器
size() 返回map中的元素個數
count() 返回制定元素出現的次數
poj 3096
題目大意:按照給出的字串先後順序,任意組合兩個字母成為乙個字串
,研究是否會出先重複
思路:用map進行儲存,判斷是否出現兩個相同的字串
#include #include #include #include #include #include #include #include #include #include #include using namespace std;
int main()
; //組合字串
if(!flag[k])
flag[k]=true;
else
}if(!mark)
break;
}if(!mark)
cout<
reverse 函式: reverse 函式是c++ 自定義的反轉函式,可以對字串進行反轉、根據指定的
範圍進行反轉,返回翻轉後的字串,若無法反轉則返回空字元。
poj3007
題目大意 : 將n長字串分為1 和n-1部分,2 和n-2部分.....依次類推,分別對他們進行
各自反轉和調換前後位置,計算會出現多少個不同的字串、
#include #include #include #include #include #include #include #include #include #include using namespace std;
const int m=200;
char word[m*200][200],str[200],strr[200];
int color;
void write(char *s)
int main()
{ int m,i;
cin>>m;
while(m--)
{color=0;
cin>>str;
int len=strlen(str);
for(i=0;i
C 的標準模板庫
c 的標準模板庫 standard template library,簡稱stl 是乙個容器和演算法的類庫。容器往往包含同一型別的資料。stl中比較常用的容器是vector,set和map,比較常用的演算法有sort等。一.vector 1.宣告 乙個vector類似於乙個動態的一維陣列。vecto...
C 標準模板庫
map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值 的資料處理能力。資料的插入 includemapstudent strdent.insert pair 1,xiaoming strdent.insert pair 2...
C 命名空間,標準庫,標準模板庫
全域性空間與命名空間 我們在使用c 時,匯入標頭檔案一般有兩種形式,帶 h 和不帶 h 一般來說,不帶 h 的是c 的標準標頭檔案,帶的是c語言的,h 裡面定義的所有類以及物件都是在全域性空間裡,不帶的是在命名空間std裡面。c 要相容c的標準庫,而c的標準庫里碰巧也已經有乙個名字叫做 string...