c 關於map的使用

2021-06-10 03:01:35 字數 3298 閱讀 1350

1. 需要引入 包

2. map的宣告:  mapmap名;

3. map插入資料: map名.insert(pair(key 值, value值));

4. 遍歷map: iterator有對應於map的迭代器:  map::iterator iter;

for(iter = map名.begin(); iter != map名.end(); iter++)

{cout#include

#include

#include

using namespace std;

int main()

{mapmapstudent;

mapstudent.insert(pair(1, "student_one"));

mapstudent.insert(pair(2, "student_two"));

mapstudent.insert(pair(3, "student_three"));

map::iterator  iter;

for(iter = mapstudent.begin(); iter != mapstudent.end(); iter++)

{coutmap是c++的乙個標準容器,她提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!

1. 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"<::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的find和count的使用

程式設計的時候比較常用,今天記錄一下,以後備用。使用count,返回的是被查詢元素的個數。如果有,返回1 否則,返回0。注意,map中不存在相同元素,所以返回值只能是1或0。使用find,返回的是被查詢元素的位置,沒有則返回map.end 例子 1 include 2 include3 includ...

c 關於map的find和count的使用

count函式返回的是乙個容器中,某一元素出現的次數,對於map,即返回key出現的次數,但是map中的key是不允許重複出現的,故count函式返回值只能是1 存在 或0 不存在 換句話說,在map中使用count 函式作用是判斷map中有無此鍵 使用方式 map int,int a if a.c...

C 中map的使用

1.map 是什麼?map表示鍵值對的對映。在現代程式語言中,是乙個很重要的資料結構。以下對c 中的map進行乙個簡單的介紹。2.map 的主要操作 2.1 map的定義 mapma 2.2 map的使用 ma 1 11 ma 2 22 ma 3 33 2.3 map的遍歷for int i 1 i...