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

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

1樓:

map也是可以遍歷的,你遍歷一遍就知道了

maptest;

for (map::iterator iter = test.begin(); iter != test.end(); ++iter)

2樓:匿名使用者

map和vector不同,如果使用下標符號訪問不存在的元素會將該元素新增進map

比如如下編寫程式時:

map word_count;

word_count["anna"]=1;

將發生以下事情:

1在word_count中查詢建為anna的元素,沒有找到2將一個新的鍵-值對插入word_count中。它的鍵是const string型別的物件,儲存anna,值採用值初始化

3將這個新的鍵-值對插入word_count中4讀取新插入的元素,並將它的值賦為1

所以一般訪問map中的元素採用其成員函式

m.find(k)

如果m容器中存在按k索引的元素,則返回指向該元素的迭代器。如果不存在,則返回超出末端迭代器!

3樓:匿名使用者

用map的迭代器:

typedef mapyourmap; /* 假設這是你定義的map型別 */

yourmap temp; /* 假設這是你的map */

yourmap iterator it = temp.begin();

while(it != temp.end())

4樓:

通過key,比如

mapmymap;

mymap['a'] = "an element";

cout << mymap['a'];

你真是這種用途何必用map,根本用不到key/value對

c++/stl/map中怎樣獲取map中第i個元素

5樓:匿名使用者

map將key和value組成的pair作為元素,根據key的排序準則自動將元素排序,map中的存取封裝了二叉樹,因此map按照自專己的演算法來進

屬行存取,跟你給元素賦值的順序無關,無論哪一個先賦值最終的map中資料排列屬性都是:m[3]=2;m[6]=7;m[9]=3;m[100]=9; 即按照key的大小進行了排序。m[3]=2;m[6]=7;m[9]=3;m[100]=9情況你說的第三個是m[9]=3,如果m[9]=3;m[100]=9;m[3]=2;m[6]=7;你所謂的第三個元素是不是就是:

m[3]=2? 這種情況插入到map後map第三個資料依然是m[3]=3.

map就是為了按照key來進行key-value的檢視,可以考慮使用list 將鍵值對做到一個list中,list是順序存取的,你取的順序根據有的存順序決定。

6樓:匿名使用者

map內部是用紅黑樹實現的,既然是樹,怎麼說是“第3個元素”呢?

7樓:du瓶邪

#include

#include

#include

int main()top

c++ 中map中是數怎麼經過for迴圈提取出來,

8樓:

定義一個迭代器(以int&int的map為例):map::iterator mapi;

然後遍歷map就可以寫成

for(mapi=map.begin;mapi!=map.end;mapi++)

9樓:索貝爾上尉

沒理解你取前幾個數是什麼意思,是取出前幾個pair還是取出每個pair的第一個元素還是每個pair的第二個元素?

10樓:丨鳳雛丨

cmapmymap;

int i;

mymap.inithashtable( 257 );

// add 10 elements to the map.

for (i=0;i < 200;i++)mymap[i] = cpoint(i, i);

// remove the elements with even key values.

cpoint pt;

for (i=0; mymap.lookup( i, pt ) ;i+=2)

#ifdef _debug

assert(mymap.getcount() == 100);

afxdump.setdepth( 1 );

afxdump << "mymap: " << &mymap << "\n";

#endif

11樓:

定義一個 int step = 0;

每次迴圈+1;

if (step >= k)

break;

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

12樓:啊啦拉韓玫

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

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

map最基本的建構函式;

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 中怎麼獲取陣列中元素的個數

物理公司的 c 中陣列可分為堆區的陣列和棧區的陣列,對於兩種陣列c 都沒有函式可以直接獲取陣列的元素的個數。一 堆區的陣列 堆區的陣列是自己申請的,比如用new申請空間 int arr new int 10 堆區的陣列不能計算出包含元素個數。二 棧區的陣列 棧區的陣列是系統自動分配的,如 cpp v...

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

1 map,顧名思義就是地圖。其實就是key,value的對應的對映。當需要快速的獲取對應key的value的時候,就可以使用map了。例如一個人是有名字,但是這個人還有其他的屬性,例如年齡,性別等等。這個人就會被封裝為一個物件。如果有很多個人,我們需要快速的根據一個人的名字獲取對應名字的物件,這個...

c語言怎麼獲取陣列的長度

c語言中,定義陣列後可以用sizeof命令獲得陣列的長度 可容納元素個數 如 但,通過傳遞陣列名引數到子函式中,以獲得陣列長度是不可行的。如 int getlength int a 因為,a是函式引數,到了本函式中,a只是乙個指標 位址,系統在本函式執行時,是不知道a所表示的位址有多大的資料儲存空間...