色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是 map?

汽車電子技術 ? 來源:C語言Plus ? 作者: Maye426 ? 2023-02-27 15:41 ? 次閱讀

一、什么是 map?

map 容器,又稱鍵值對容器,即該容器的底層是以紅黑樹變體實現的,是典型的關聯式容器。這意味著,map 容器中的元素可以分散存儲在內存空間里,而不是必須存儲在一整塊連續的內存空間中。跟任意其它類型容器一樣,它能夠存放各種類型的對象。

二、容器特性

1.存儲結構

map是由多個節點(二叉樹中的紅黑樹變體)組成的。

2.鍵值對

map是一個鍵值對序列,即(key,value)——封裝在結構體pair中,它提供基于key的快速檢索能力,不能在指定位置插入,但支持at(pos)和[]操作。如:map[key]=value;

multimap與map的區別:map中的key只能唯一,每個key只能出現一次;而multimap中同一key可以出現多次。

3.雙向迭代器

不支持隨機訪問迭代器,只能從容器中第一個元素或最后一個元素開始遍歷容器,直到找到該位置。

三、基本函數實現

1,構造函數

  • map();創建一個空map
  • map(const map&);復制構造函數
  • map(begin,end);復制[begin,end)區間內的元素,到另一個map中

2.map插入

  • pair insert(const T& x); //往容器插入元素,返回pair

    在map中插入元素的三種方式:

    假設 map mapStu;

    一、通過pair的方式插入對象

    mapStu.insert( pair(3,"小張") );

    二、通過pair的方式插入對象

    mapStu.inset(make_pair(-1, “校長-1”));

    三、通過value_type的方式插入對象

    mapStu.insert( map::value_type(1,"小李") );

    四、通過索引(key)的方式插入值

    mapStu[3] = “小劉";

    mapStu.at(4) = “小王";

    • 注意:使用key的方式插入,當key存在時會直接修改key對應的值,當key不存在時會新建一個然后插入

3.map刪除

  • iterator erase(iterator it);刪除鍵值對中迭代器指向元素
  • iterator erase(iterator first,iterator last);刪除鍵值對中[first,last)中元素
  • size_type erase(const key_type& key); 刪除指定的元素
  • void clear();清空鍵值對中所有元素

4.查找函數

  • iterator map.find(key); 查找鍵key是否存在,若存在,返回該鍵的元素的迭代器;若不存在,返回map.end();

  • size_type map.count(keyElem); //返回容器中key為keyElem的對組個數。對map來說,要么是0,要么是1。對multimap來說,值可能大于1。

  • pair map.equal_range(keyElem); //返回容器中key與keyElem相等的上下限的兩個迭代器。上限是閉區間,下限是開區間,如[beg,end)。

    以上函數返回兩個迭代器,而這兩個迭代器被封裝在pair中。

5.判斷函數

  • bool empty() const;判斷容器中是否有元素,若無元素,則返回 true;反之,返回 false。

6.大小函數

  • int size() const;返回鍵值對中元素的個數
  • int max_size() const;返回最大可允許的map元素數量值

7.其他函數

  • void swap(map&);交換兩個同類型容器的數據

四、基本用法

#include 
#include
using namespace std;
int main()
{
  //保存學生學號和姓名
  map<int,string> s;
  for (int i = 0; i < 10; i++)
  {
    string ch = "ABCDEFGHIJ";
    string name= "maye";
    //注意pair的類型參數,需要和map的一致
    s.insert(pair<int,string>(i,name+ch[i]));
  }
  s.insert(make_pair(111, "C語言PLUS"));
  s.insert(map<int, string>::value_type(222, "法外狂徒"));
  s[333] = "頑石";


  cout << "學號:" <<" "<< "姓名:" << endl;
  for (map<int, string>::iterator it = s.begin(); it != s.end(); it++)
  {
    cout << it->first << "      " << it->second << endl;
  }
  //cout << "\\nmap size():" << s.size() << endl;


  //查找指定的key值,返回指向的迭代器,沒有找到返回end()迭代器,所以再輸出之前需要判斷是否找到
  map<int, string>::iterator it1 = s.find(6);
  if (it1 != s.end())
  {
    cout << it1->first << " " << it1->second << endl;
  }
  //如果map中有等于4的key,則返回指向4的迭代器,如果沒有返回第一個大于4的元素的迭代器,沒有找到返回end()迭代器
  it1 = s.lower_bound(4);
  if (it1 != s.end())
  {
    cout << it1->first << " " << it1->second << endl;
  }
  //如果map中有大于4的key,返回第一個大于4的元素的迭代器,沒有找到返回end()迭代器
  it1 = s.upper_bound(4);
  if (it1 != s.end())
  {
    cout << it1->first << " " << it1->second << endl;
  }
  cout << "------------------我是 C語言Plus 華麗分割線" << endl;
  //定義對組,接受equal_range()的返回值
  pair
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 容器
    +關注

    關注

    0

    文章

    500

    瀏覽量

    22193
  • MAP
    MAP
    +關注

    關注

    0

    文章

    49

    瀏覽量

    15228
  • 元素
    +關注

    關注

    0

    文章

    47

    瀏覽量

    8506
收藏 人收藏

    評論

    相關推薦

    【Linux編程】如何使用gcc編譯源代碼時輸出map文件?

    【Linux編程】如何使用gcc編譯源代碼時輸出map文件?
    的頭像 發表于 08-15 14:08 ?8520次閱讀
    【Linux編程】如何使用gcc編譯源代碼時輸出<b class='flag-5'>map</b>文件?

    C++之map/mutimap容器

    map/multimap容器,也是一個關聯式容器,底層通過二叉樹實現。
    的頭像 發表于 07-17 09:45 ?1257次閱讀
    C++之<b class='flag-5'>map</b>/mutimap容器

    基于Google Map Api的Android導航應用

    本文提出并實現了一種基于Google Map Api 的Android 導航應用,能夠給用戶提供人性化和智能化的地圖導航服務。
    發表于 11-21 15:09 ?5280次閱讀

    Map Service Engine Based On We

    Abstract:A design and implementation of map service engine based on web is introduced
    發表于 07-23 10:43 ?17次下載

    MAP圖對調速電機的作用

    MAP圖對調速電機的作用,學習資料,感興趣的可以看看。
    發表于 10-26 15:12 ?0次下載

    最好的輔助數據,MAP圖對調速電機有什么作用?

    電機中的MAP圖是電機測試時生成的一種數據曲線圖,主要是反映在不同轉速、扭矩下的電機效率分布情況,通俗而言就是效率分布圖,類似于我們地理課上常見的等高線圖。 在說調速電機之前,我們先了解一下MAP圖的作用。 MAP圖是什么?
    發表于 11-04 19:02 ?2690次閱讀
    最好的輔助數據,<b class='flag-5'>MAP</b>圖對調速電機有什么作用?

    紋理映射技術中Mip_Map的研究_曾云

    紋理映射技術中Mip_Map的研究_曾云
    發表于 03-15 11:08 ?0次下載

    基于DSP的Max-Log-MAP算法解析

    是近年來研究工作的熱點。Turbo碼采用反饋迭代譯碼結構,成員譯碼器使用最大后驗概率(MAP)譯碼算法譯碼,由于MAP算法含有大量的指數運算與對數運算,給實現帶來極大的困難,在工程應用中,通常采用其對數域的簡化算法Log-MAP
    發表于 11-04 10:47 ?5次下載
    基于DSP的Max-Log-<b class='flag-5'>MAP</b>算法解析

    mapreduce 中MAP進程的數量怎么控制?

    1.如果想增加map個數,則設置mapred.map.tasks 為一個較大的值2.如果想減小map個數,則設置mapred.min.split.size 為一個較大的值3.如果輸入中有很多小文件,依然想減少
    發表于 01-02 14:04 ?1937次閱讀
    mapreduce 中<b class='flag-5'>MAP</b>進程的數量怎么控制?

    Mapreduce和Hive中map reduce個數設定

    Mapreduce中mapper個數的確定: 在map階段讀取數據前,FileInputFormat會將輸入文件分割成split。split的個數決定了map的個數。 影響map個數,即split
    發表于 01-02 14:21 ?6170次閱讀

    mapreduce設置map個數_mapreduce設置map內存

    map階段讀取數據前,FileInputFormat會將輸入文件分割成split,split的個數決定了map的個數。
    發表于 01-02 14:26 ?1.1w次閱讀
    mapreduce設置<b class='flag-5'>map</b>個數_mapreduce設置<b class='flag-5'>map</b>內存

    Java Map的幾種循環方式學習總結

    本文檔內容介紹了基于Java Map的幾種循環方式學習總結,供參考
    發表于 03-19 15:51 ?0次下載

    單片機中的MAP文件分析

    一、要讓Keil生成map文件,要設置:再重新編譯,沒有錯誤后,就會生成map文件了。二、map文件中相關概念:段(section) :描述映像文件的代碼和數據塊。RO:Read-Only的縮寫
    發表于 11-15 10:36 ?12次下載
    單片機中的<b class='flag-5'>MAP</b>文件分析

    MAP傳感器有什么作用?是如何工作的?

    MAP是歧管絕對壓力的縮寫。該MAP傳感器通過測量進氣歧管中的空氣量來檢測進入發動機的空氣量。然后,ECU使用此空氣測量來管理注入發動機的汽油量并修改點火正時,這兩者都對您的發動機正常運行至關重要。
    發表于 05-23 15:32 ?2720次閱讀
    <b class='flag-5'>MAP</b>傳感器有什么作用?是如何工作的?

    List 轉 Map的方法

    在我們平時的工作中,充滿了各種類型之間的轉換。今天小編帶大家上手 List 轉 Map 的各種操作。 我們將假設 List 中的每個元素都有一個標識符,該標識符將在生成的 Map 中作為一個鍵
    的頭像 發表于 10-09 16:10 ?1823次閱讀
    主站蜘蛛池模板: 后入式狂顶免费视频 | 自拍 偷拍 亚洲 经典 | 日本人HD18HD18| 手机免费毛片 | 欧美丰满白嫩bbxx | 跪趴式啪啪GIF动态图27报 | 国产精品免费观看视频播放 | 亚洲精品在看在线观看 | 日日操天天操夜夜操 | 亚洲手机在线人成视频 | 男人的天堂黄色片 | 国产高清砖码区 | 美女扒开尿口让男生添动态图 | WWW国产亚洲精品久久久日本 | 老师的脚奴 | 精品久久伦理中文字幕 | 国产综合无码一区二区色蜜蜜 | 超嫩校花被灌醉在线观看 | 亚洲国产成人私人影院 | 99久久99久久精品国产片果冻 | 肉蒲团从国内封禁到日本成经典 | 亚洲精品久久久一区 | 日日噜噜噜噜夜夜爽亚洲精品 | 村妇偷人内射高潮迭起 | 国产精品97久久AV色婷婷 | 国模啪啪久久久久久久 | 永久免费精品影视网站 | 狠狠色狠狠色综合日日91app | 欧美日韩亚洲成人 | 青苹果乐园在线观看电视剧 | www.黄色 | 插骚妇好爽好骚 | 高h np 强j 乱l 双性 | 人人艹人人 | 芒果影院网站在线观看 | 黑丝制服影院 | 一级做a爰片久久毛片苍井优 | 亚洲色综合中文字幕在线 | 俄罗斯另类Z0Z0ZOZO | 国产精品成人久久久久A伋 国产精品成人观看视频免费 | 国产在线自天天人人 |