關於map的簡單用法

2021-10-02 08:12:27 字數 2766 閱讀 2901

在使用map的時候需要新增標頭檔案 #include< map >

map一般配合著pair(也是乙個模板類),pair類似於數學中的函式,一雙一對,一對一的關係

1.map和pair的構造

map《資料型別1,資料型別2>名稱 , 例如 :

map< int , int >mp;

map< int , vector< int >>mp;

資料型別不止c++自有的,還有自定義的,比如說class student等

pair《資料型別1,資料型別2>名稱,例如 : pair< int , int>x;

map相當於是pair的集合

2.map和pair的資料插入

對於map而言,有三種方式 :

(1)採用insert函式將pair資料插入到map中 :

mp.

insert

(x);

(2)採用insert函式插入value_type資料 :

mp.

insert

(mapint>

::value_type

("123"

,123))

;

ps : 採用 insert() 方法的時候 , 如果關鍵字存在,則會報錯

(3)採用陣列的方式插入資料(迭代器的使用) :

#include

#include

#include

using

namespace std;

intmain()

}

對於pair中的,第乙個資料可以相當於索引,第二個元素是該索引對應的值

pair中的 first 相當於是關鍵字,而當關鍵字存在的時候 insert 函式是不能將之前的 second值覆蓋,想要覆蓋掉的話就只能用陣列的方式去插入(插入方法的區別

3.map的相關函式

(1)size函式,用於返回現在的map的大小 (就是有map裡多少pair)

(2)count函式,用於判斷該關鍵字是否出現過,返回0或者1

(3)find函式,用於找到該關鍵字的位置,找到時返回關鍵字所在位置的迭代器,沒有 找到時返回end函式的迭代器

(4)clear函式,用於清空map

(5)empty函式,用於判斷map是否為空

(6)erase函式,用法詳解

#include

#include

#include

using

namespace std;

intmain()

begin()         返回指向map頭部的迭代器

end() 返回指向map末尾的迭代器

equal_range() 返回特殊條目的迭代器對

get_allocator() 返回map的配置器

insert() 插入元素

key_comp() 返回比較元素key的函式

lower_bound() 返回鍵值》=給定元素的第乙個位置

max_size() 返回可以容納的最大元素個數

rbegin() 返回乙個指向map尾部的逆向迭代器

rend() 返回乙個指向map頭部的逆向迭代器

swap() 交換兩個map

upper_bound() 返回鍵值》給定元素的第乙個位置

value_comp() 返回比較元素value的函式

c++ maps是一種關聯式容器,包含"鍵-值"對

應用舉例 :

題目1 :

給定一篇只含有由小寫字母組成的文章,要求輸出總單詞數(相同的單詞只算一次)。隨後有多次詢問,每 次詢問乙個單詞,要求輸出單詞在文章**現的次數。

輸入格式 :

第一行兩個整數n,m,分別表示文章中單詞數和詢問的次數。

第二行乙個字串,表示要處理的文章(文章中只含有小寫字母及空格,不含任何標點符號)。

接下來m行,每行乙個只含小寫字母的字串,表示被詢問的單詞。

輸出格式 :

第一行輸出乙個正整數,表示文章中的總單詞數(相同的單詞只算一次)。

接下來m行,每行乙個自然數,表示被詢問單詞在文章**現的次數,若單詞不存在,則輸出0。

題目分析 :

經過分析可知,題目中要求表示的資料有兩個,乙個是單詞,另乙個是該單詞對應的出現次數,而且不止有乙個單詞,是一篇文章的多個不重複單詞,所以很符合 map 的用法,可以將 string 型別的單詞作為關鍵字,而出現的次數作為它的值(屬於一 一對應的函式關係)

#include

#include

#include

using

namespace std;

intmain()

cout << mp.

size()

<< endl;

for(

int i =

0; i < m; i++

)return0;

}//ps當使用陣列方式插入資料時,如果索引存在,那麼把之前的值覆蓋掉,如果索引不存在,那麼將初始化該索引

//這裡的索引就是關鍵字,也就是上文的單詞 str

map的簡單用法

map 顧名思義就是地圖,包含key和value 當需要快速獲取key和value的時候,就可以用map了 首先,我給出基本的用法插入資料的 1.mapmapstudent mapstudent.insert pair 1,student one mapstudent.insert pair 2,s...

map容器的簡單用法

map是按關鍵字順序來儲存資料 因此關鍵字不能重複 不能直接修改 map 容器中的關鍵字。因為 map 中的元素是按照關鍵字排序的,新增元素方法有insert make pair t1,t2 和 insert函式返回型別為pair迭代器指向插入的建值的位置 成功bool為true 失敗為false ...

map 與 set 簡單用法

map 與 set 簡單用法 map set 用於查詢時用set 一 map 在map中元素有兩種插入方法 在map中使用下標訪問不存在的元素將導致在map容器中新增乙個新的元素。insert函式的插入方法主要有如下 上述的e乙個value type型別的值。beg和end標記的是迭代器的開始和結束...