999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STL中multimap容器簡要介紹

2019-12-01 05:58:05崔馭孫佳澤焦靜頤
電子技術與軟件工程 2019年4期
關鍵詞:排序方法

文/崔馭 孫佳澤 焦靜頤

1 multimap容器的基本原理及與map的主要區別

Multimap是STL中的標準容器,它是一種關聯型容器,可以保存鍵值對,對數據進行關聯性保存。Multimap與map一樣,底層使用了紅黑樹數據結構來進行數據數據管理。他們都可以根據key的排序準則自動將元素排序。他們的主要區別就是multimap允許重復元素,而map不允許。

使用multimap之前,需引入頭文件。其中, multimap被定義為命名空間std內的class templates。

2 multimap容器的操作函數

multimap容器的各項操作函數主要是用于進行生成,復制,銷毀等各項操作

這里列出multimap容器最常用的幾種構造函數和析構函數:

multimap mm:創建空映射,不包含任何元素

multimap mm(op):以op為排序準則,產生一個空的multimap

multimap m(const value_type *first, const value_type* last):復制[f irst, last)之間元素構成新映射

m.~multimap():銷毀所有元素,釋放內存

以上是常用的操作函數。對于multimap的構造方法,在這里只講解最常用的一種形式

multimap<鍵值類型,值類型>對象名稱

例如:multimapM;

3 在multimap對象中插入數據

在multimap插入數據的常用方法有三種

(1)利用value_type 具體代碼如下:

typedef multimap StrIntMultimap;

StrIntMultimap M;

M.insert(StrIntMultimap:: value_type(“hello”,10));

(2)利用pair 具體代碼如下:

M.insert(pair (“world”,11));

(3)利用下標操作符 具體代碼如下:

M[“hard”]=13;

4 multimap容器中的數據遍歷

multimap不支持元素直接存取,所以通過multimap迭代器來完成對multimap容器中數據的遍歷操作。

multimap的迭代器相關函數

M.begin() 返回一個雙向迭代器,指向首元素

M.end () 返回一個雙向迭代器,指向尾元素的下一個位置

對multimap容器數據遍歷的實現主要使用以下方法:

利用雙向迭代器進行遍歷,具體代碼如下

multimap::iterator it;

for(it=M.begin;it!=M.end();it++)

cout<f irst<<” “<second<

5 multimap容器中的數據查找

由于multimap是可以出現重復鍵值的,所以與map相比在multimap容器中進行數據查找,還需掌握查找相同鍵的鍵值對方法。

(1)使用f ind和count進行查找

count(key)求出鍵key出現的次數

f ind(key)返回第一個擁有鍵key的元素

示例代碼:

int cnt=M.count(key);

multimap::iterator it;

it=M.f ind(key);

for(;cnt>=0;cnt--,it++)

cout<f irst<<” “<second<

(2)使 用lower_bound與upper_bound進行查找

lower_bound(key)返回指向不小于key的第一個元素的迭代器

upper_bound(key)返回指向 大于key的第一個元素的迭代器

multimap::iterator itBeg=M. lower_bound(key);

multimap::iterator itEnd=M. upper_bound(key);

for(;itBeg!= itEnd;cnt--, itBeg ++)

cout<< itBeg ->first<<” “<< itBeg ->second<

6 multimap容器中的數據刪除

erase() 返回溢出元素的個數

(1)使用multimap容器中的關鍵字kry進行數據刪除

int cnt;

cnt=M.erase(1);

因為multimap內含有重復的元素,這個方法會將重復元素都刪去,如果想刪除重復元素中的第一個元素,可以使用方法(2)

(2)使用multimap容器中迭代器進行刪除

multimap::iterator it;

it=M.f ind(key);

if(it!=M.end())

M.erase(it);

7 結束語

Multimap是STL中標準容器之一,它的特性使它能夠完成很多map無法實現的操作。無論是在日常開發還是在算法競賽中,multimap都以它能夠關聯數據且允許重復元素的特性發揮著巨大作用。掌握好multimap容器對學習好STL其他容器和算法有很大幫助,并能提高學生的程序編程能力。

猜你喜歡
排序方法
排排序
排序不等式
恐怖排序
學習方法
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产99精品视频| 国产成人AV男人的天堂| 国产免费好大好硬视频| 色综合综合网| 色综合天天综合中文网| 国产尤物jk自慰制服喷水| 人妻丰满熟妇啪啪| 国产成人久久综合777777麻豆 | av一区二区三区在线观看| 国产欧美精品一区二区| 99在线观看视频免费| 一区二区理伦视频| 成人福利在线看| 欧美日韩中文字幕在线| 亚洲高清日韩heyzo| av在线5g无码天天| 色丁丁毛片在线观看| 国产一区二区视频在线| 久草网视频在线| 中国国产A一级毛片| 亚欧美国产综合| 精品国产一区二区三区在线观看| 2020国产免费久久精品99| 色欲色欲久久综合网| 精品欧美日韩国产日漫一区不卡| 亚洲第一区在线| 午夜无码一区二区三区在线app| 美女免费精品高清毛片在线视| 国产精品综合色区在线观看| 国产精品成人AⅤ在线一二三四 | 亚洲欧美日韩久久精品| 一级毛片在线直接观看| 曰AV在线无码| 国产精品不卡片视频免费观看| 欧美精品亚洲精品日韩专| 亚洲精品图区| 草逼视频国产| 免费a级毛片视频| jizz国产视频| 九九九精品成人免费视频7| 亚洲精品欧美重口| 亚洲免费福利视频| 看国产一级毛片| 久久激情影院| 欧美国产日产一区二区| 亚洲精品福利网站| 亚欧美国产综合| 久久综合丝袜长腿丝袜| 日韩精品专区免费无码aⅴ| 广东一级毛片| 国产精品亚洲片在线va| 国产区在线看| 国产va欧美va在线观看| 在线国产你懂的| 亚洲午夜国产精品无卡| 国产精品乱偷免费视频| 欧美啪啪网| 18禁高潮出水呻吟娇喘蜜芽| 欧洲成人免费视频| 全部免费特黄特色大片视频| 日本精品中文字幕在线不卡| 四虎精品国产永久在线观看| 亚洲精品久综合蜜| 免费一级毛片不卡在线播放| 欧美视频二区| 欧美天堂久久| 国产亚洲一区二区三区在线| 久久天天躁狠狠躁夜夜躁| 黄色一及毛片| 女人18一级毛片免费观看| 亚洲成人一区二区三区| 久久国产精品电影| 国产精品xxx| 国产视频 第一页| 亚洲av中文无码乱人伦在线r| 亚洲人成影院在线观看| 成人福利在线观看| 国产在线视频福利资源站| 福利一区在线| 456亚洲人成高清在线| 91www在线观看| 91丨九色丨首页在线播放|