在使用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標記的是迭代器的開始和結束...