c 標準模板庫的應用

2021-06-27 15:03:52 字數 1993 閱讀 9727

目前涉及到的模板只有兩種,一種是比較常用的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...