怎麼在c的map裡面放key map鍵值對

時間 2021-09-04 02:33:22

1樓:匿名使用者

1、map,顧名思義就是地圖。其實就是key,value的對應的對映。

當需要快速的獲取對應key的value的時候,就可以使用map了。例如一個人是有名字,但是這個人還有其他的屬性,例如年齡,性別等等。這個人就會被封裝為一個物件。

如果有很多個人,我們需要快速的根據一個人的名字獲取對應名字的物件,這個時候map就有用了。如果採用陣列,我們需要遍歷整個陣列,才可以根據名字找到這個人。如果是map(以名字為key,以人的物件為value),就可以直接根據名字得到這個物件,就不需要遍歷操作了。

c++的map是採用紅黑樹實現的,因此獲取value的效率為lgn級別。

2、例子:

map> mymap;

mapchildmap1;

childmap1.insert("childmap1item1","item1");

childmap1["chilemap1item2"]="item2";//若沒找到key為chilemap1item2的元素就則新增一個

mapchildmap2;

childmap2.insert(map::value_type("childmap2item1","item1"));

mymap.insert("childmap1",childmap1);

mymap.insert("childmap2",childmap2);

//若想從mymap中找到childmap1的key為"chilemap1item2"的元素,可以這麼做

map>::iterator it = mymap.find("childmap1");

map::iterator childiterator = it->second.find("chilemap1item2");

string value=childiterator->second;//value即為所求值

2樓:匿名使用者

#include

#include

#include

#include

using namespace std;

typedef mapmy_map;

void main()

3樓:匿名使用者

方法有三種,

1.通過pair鍵值對插入。mapobj.insert(pair("a","1"));

2.通過value_type插入。mapobj.insert(map::value_type(1,"a"));

3.通過陣列的方式插入。

mapobj[1] = "a";

mapobj[2] = "b";

任何時候都不要忘記求助msdn,最後祝你好運。

4樓:義昀欣

給你一個例子,你參照一下。

cmapmymap;

// add 10 elements to the map.

for (int i=0;i < 10;i++)mymap.setat( i, cpoint(i, i) );

// remove the elements with even key values.

position pos = mymap.getstartposition();

int nkey;

cpoint pt;

while (pos != null)

c++中,將map中的value存放在vector中進行排序之後,那麼怎樣取到相應的key值並順序輸出呢?

5樓:搗蒜大師

你只存放了value,用它找key只能遍歷map了。

為什麼不把key-value存放在vector裡面呢。

push_back一個pair就行了。

c++ map問題:如何指向map中最後一個元素?

6樓:啊啦拉韓玫

end是map的尾部,沒有實際元素,可以 iter = map.end(); iter --;

總結了一些map基本簡單實用的操作:

map最基本的建構函式;62616964757a686964616fe58685e5aeb931333365633930

mapmapstring;         mapmapint;

mapmapstring;         map< char ,string>mapchar;

mapmapchar;            mapmapint;

2. map新增資料;

mapmaplive;

1.maplive.insert(pair(102,"aclive"));

2.maplive.insert(map::value_type(321,"hai"));

3, maplive[112]="april";//map中最簡單最常用的插入新增!

3.map中元素的查詢:

find()函式返回一個迭代器指向鍵值為key的元素,如果沒找到就返回指向map尾部的迭代器。

map::iterator l_it;;

l_it=maplive.find(112);

if(l_it==maplive.end())

cout<<"we do not find 112"<4,map中元素的刪除:

如果刪除112;

map::iterator l_it;;

l_it=maplive.find(112);

if(l_it==maplive.end())

cout<<"we do not find 112"<5,map中 swap的用法:

map中的swap不是一個容器中的元素交換,而是兩個容器交換;

for example:

#include

#include

using namespace std;

int main( )

{map m1, m2, m3;

map ::iterator m1_iter;

m1.insert ( pair ( 1, 10 ) );

m1.insert ( pair ( 2, 20 ) );

m1.insert ( pair ( 3, 30 ) );

m2.insert ( pair ( 10, 100 ) );

m2.insert ( pair ( 20, 200 ) );

m3.insert ( pair ( 30, 300 ) );

cout << "the original map m1 is:";

for ( m1_iter = m1.begin( ); m1_iter != m1.end( ); m1_iter++ )

cout << " " << m1_iter->second;

cout   << "." << endl;

// this is the member function version of swap

//m2 is said to be the argument map; m1 the target map

m1.swap( m2 );

6.map的sort問題:

map中的元素是自動按key升序排序,所以不能對map用sort函式:

for example:

#include

#include

using namespace std;

int main( )

{map m1;

map ::iterator m1_iter;

m1.insert ( pair ( 1, 20 ) );

m1.insert ( pair ( 4, 40 ) );

m1.insert ( pair ( 3, 60 ) );

m1.insert ( pair ( 2, 50 ) );

m1.insert ( pair ( 6, 40 ) );

m1.insert ( pair ( 7, 30 ) );

cout << "the original map m1 is:"

c++ maps是一種關聯式容器,包含“關鍵字/值”對

begin()          返回指向map頭部的迭代器

clear()         刪除所有元素

count()          返回指定元素出現的次數

empty()          如果map為空則返回true

end()            返回指向map末尾的迭代器

equal_range()    返回特殊條目的迭代器對

erase()          刪除一個元素

find()           查詢一個元素

get_allocator()  返回map的配置器

insert()         插入元素

key_comp()       返回比較元素key的函式

lower_bound()    返回鍵值》=給定元素的第一個位置

max_size()       返回可以容納的最大元素個數

rbegin()         返回一個指向map尾部的逆向迭代器

rend()           返回一個指向map頭部的逆向迭代器

size()           返回map中元素的個數

swap()            交換兩個map

upper_bound()     返回鍵值》給定元素的第一個位置

value_comp()      返回比較元素value的函式

C請問怎麼獲取map的元素呢

map也是可以遍歷的,你遍歷一遍就知道了 maptest for map iterator iter test.begin iter test.end iter map和vector不同,如果使用下標符號訪問不存在的元素會將該元素新增進map 比如如下編寫程式時 map word count wor...

在錄音棚裡錄歌,耳機裡面放的是什麼啊

錄音棚裡錄歌時,耳機裡放的是伴奏的 錄音棚裡戴的耳機又稱之為監聽耳機,言外之意就是歌手在錄音的時候也可以同時監聽到自己的聲音,錄音的時候是否出錯就可以通過耳機聽得到!另外也是歌手與錄音師溝通的一個工具之一。錄音棚室一個完全隔絕聲音的聲學環境,因此在錄音棚裡的歌手要聽到監控室裡錄音師的說話,是要通過耳...

C 裡面,取整的函式是什麼,在 C語言中 取整 , 求餘的符號各是什麼?

一棵無所不知的小白菜 1 首先,定義一個實型變數n,儲存取整的數值。2 用ceil函式對實數5.78取整,取整後的數值儲存在變數n中。3 輸出取整後的數值n。4 執行程式,輸出的值為6,這是因為ceil是對實數向上取整。5 ceil函式是否是四捨五入向上取整呢?接著,將ceil內的數更改為5.18。...