C map使用方法

2021-10-09 07:30:28 字數 2898 閱讀 6695

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自定義排序,如按字串長度

struct cmpbykeylength };

mapint, cmpbykeylength> name_score_map;

2⃣️對有序map中的value排序

把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;

例題,找出一串數字**現次數最多的那個數

#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;

}

vec.rbegin()代表最後乙個元素,end()代表最後元素之後的,為空

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,同時...