两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. 簡介

Map也是一種關(guān)聯(lián)容器,它是 鍵—值對的集合,即它的存儲都是以一對鍵和值進行存儲的,Map通常也可以理解為關(guān)聯(lián)數(shù)組(associative array),就是每一個值都有一個鍵與值一一對應(yīng),因此,map也是不允許重復(fù)元素出現(xiàn)的。

同時map也具備set的相關(guān)功能,其底層也會將元素進行自動排序,

2. 相關(guān)文件

頭文件:#include<map>

3.  初始化

格式為:

template < class Key, 
           class T,
           class Compare = less<Key>, 
           class Alloc = allocator<pair<const Key,T> > 
           > class map;

一共有4個值,其中第一個是鍵,第二個是值,這兩個元素呈現(xiàn)對應(yīng)的關(guān)系,接著第三個元素是比較器,其默認是降序排序,第四個是內(nèi)存配置器,負責(zé)內(nèi)存的分配和銷毀。我們常用的可以直接省去第三和第四個值的輸入,只輸入鍵和值即可。

4.迭代器

我們使用map<char,int> s提前建立了一個map

C98代碼如下:

 for(map<char,int>::iterator it=s.begin();it!=s.end();it++){
        cout<< it->first <<" --- " << it->second<<endl;
    }

這里我們需要注意一下,我們不能直接通過*it的輸出方式輸出值,因為map種含有兩個元素,相當于一個struct結(jié)構(gòu)體,是一個復(fù)合類型,C/C++中輸出復(fù)合類型需要我們指定復(fù)合類型的值。

因此我們輸出就變成了it->first 指定輸出鍵,it-<second指定輸出值(剛好就是英文的第一和第二的意思)

5.常用接口

我們使用map<char,int> s 預(yù)先創(chuàng)建了一個map,命名為s,方便舉例

a) 大小size()

返回鏈表元素的個數(shù)

函數(shù)原型:size_type size() const;

cout<<s.size()<<endl;   //直接返回棧中元素的個數(shù)

b) 插入元素insert()

插入一個元素,插入元素的類型必須與創(chuàng)建的容器類型一致

函數(shù)原型:single element  

pair<iterator,bool> insert (const value_type& val);

template <class P> pair<iterator,bool> insert (P&& val);

s.insert(pair<char,int>('d',4));   
//這里的Pair表示一對的關(guān)系,相當于struct pair{char a;int b}的一對數(shù)據(jù),我們在接下來會詳細學(xué)pari的用法
//如果覺得這樣的方式比較困難,可以試著使用下標的方式進行數(shù)據(jù)輸入
s['d']=4;        //這與上面的效果是一樣的。

c) 刪除元素erase()

刪除一個元素,或者是一段區(qū)間的元素,將會自動縮減空間使用。

函數(shù)原型:

iterator erase (iterator position);

iterator erase (iterator first, iterator last);

使用方法:

s.erase(s.begin());  //使用迭代器的方法刪除第一個元素
s.erase(s.begin(),s.end());     //刪除一段內(nèi)容,這里是全部刪除

清空元素clear()

將整個set集合中的內(nèi)容清空,注意,這里只是清空元素,其所占用的最大內(nèi)存空間還是不會改版的。

s.clear();

d) 查找元素find()

函數(shù)原型:iterator find (const value_type& val) const;

cout<< s.find('d')->second <<endl;

或者 實現(xiàn)找到的刪除指定元素

s.erase(s.find('d'));


點贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)