map提供一對一的hash,採用key——value鍵值對,可以是任意型別(包括自定義型別)
標頭檔案
#include
定義乙個map物件
mapmapstudent;
插入資料——陣列方式,若已存在鍵,會覆蓋
mapstudent[1] = 「student_one」;
插入資料——pair方式,若已存在鍵,插入失敗
pair::iterator, bool> ret;
ret = mapstudent.insert(pair(1, 「student_two」));
ret.first ⇒ 1
ret.second ⇒ false (已存在1這個鍵,返回false)
ret.first -> second ⇒ student_one (本身鍵的值)
迭代器遍歷
map::iterator iter;
for(iter = mapstudent.begin(); iter != mapstudent.end(); iter++)
cout << iter->first << 』 』 << iter->second << end;
map大小
int size = mapstudent.size();
是否存在某鍵,存在返回1,否則0
int n = mapstudent.count(1);
查詢資料
1⃣️直接cout << mapstudent[1]
2⃣️find() 找到則返回指向該關鍵字的迭代器,否則返回指向end的迭代器
map::iterator iter;
iter = mapstudent.find(1);
if(iter != mapstudent.end())
cout << 「find」 << iter->second << endl;
刪除元素
1⃣️迭代器刪除
map::iterator iter;
iter = mapstudent.find(1);
mapstudent.erase(iter);
2⃣️關鍵字刪除
int n = mapstudent.erase(1); 刪除返回1,否則返回0
3⃣️成片刪除(前閉後開)
mapstudent.erase(mapstudent.begin(), mapstudent.end());
相當於清空
mapstudent.clear();
排序
預設按鍵公升序排列,因此map是有序的
1⃣️對有序map中的key自定義排序,如按字串長度
2⃣️對有序map中的value排序struct cmpbykeylength };
mapint, cmpbykeylength> name_score_map;
把map中的元素放到序列容器(如vector)中,再用sort進行排序
例題,找出一串數字**現次數最多的那個數bool
cmp(
const pairint>
& a,
const pairint>
& b)
// 將map中的內容轉存到vector中
vectorint>>
vec(name_score_map.
begin()
, name_score_map.
end())
;//對線性的vector進行排序
sort
(vec.
begin()
, vec.
end(
), cmp)
;for
(int i =
0; i < vec.
size()
;++i)
cout << vec[i]
.first << endl;
vec.rbegin()代表最後乙個元素,end()代表最後元素之後的,為空#include
#include
#include
#include
#include
#include
#include
using
namespace std;
bool
cmp(
const pair<
long
long
,int
>
& a,
const pair<
long
long
,int
>
& b)
intmain()
// 將map中的內容轉存到vector中
vectorlong
long
,int
>>
vec(box.
begin()
, box.
end())
;//對線性的vector進行排序
sort
(vec.
begin()
, vec.
end(
), cmp)
; cout << vec.
rbegin()
->first <<
" "<< vec.
rbegin()
->second << endl;
}
c map的使用方法
map是c 的乙個標準容器,它提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!1.map建構函式 mapmapstring mapmapint mapmapstring map char string mapchar mapmapchar...
C map的使用方法
map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map 現一次,第二個可能稱為該關鍵字的值即key value 的資料 處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆紅黑...
C map使用方法總結
目錄 1.概述 2.map的基本操作 2.1 插入操作 2.2 取值 2.3.容量查詢 2.4 刪除 2.5 查詢 2.6 使用舉例 3.map基本操作函式總結 map是c 標準模板庫 stl 中的一種關聯式容器。它的特性是,所有元素都會根據元素的鍵值自動被排序,即map的所有元素都是pair,同時...