티스토리 뷰

C++

C++ map 컨테이너 __ map container

플레지 2019. 7. 18. 22:52

 map container 사용하기

 


// https://blockdmask.tistory.com/87?category=249379
/*
key 와 value 쌍으로 저장되어있는 map container 를 학습

노드 기반의 균형 이진 트리 구조이다.

Map  : map 은 key 와 value 로 이루어져있으면 pair 객체 형태로 저장된다.

Unique Key  key 는 고유값이므로 중복이 불가능하다.
(중복을 사용하고 싶다면 multimap 을 사용하자)

삽입이 되면 자동 정렬이 이루어 진다.

저장 공간이 필요함에 따라서 Allocator 를 사용해주자.

map 을 사용하기 위해서는 

 헤더파일을 사용해주자.

기본 생성 방법1 : map< int , int > m1;
기본 생성 방법1 : map< string, int > m2;

map 에 삽입을 하기위한 insert 는 pair 객체를 인자로 받아야한다 . 
key 값과 value 는 쌍을 이루기 때문이다.

삽입 예시 1 : m1.insert(pair<int,int>(10,20));
삽입 예시 2:  m2.insert(pair<string,int>("쓰라는나레기",24));
   
map 의 멤버함수는 set 과 동일하다.  

*/

 

 

insert 를 이용한  map 순회 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
#include<map>
#include<string>
using namespace std;
 
 
    map<int,string> m;
 
 
int main()
{
 
    m.insert(pair<int,string>(40,"me"));
    m.insert(pair<int ,string>(35,"Show"));
    m.insert(pair<int,string>(10,"navillrea"));
    m.insert(pair<int,string>(90,"6"));
    m.insert(pair<int ,string>(65,"LavienRose"));
    m.insert(pair<int,string>(20,"violta"));
 
    map<int,string>::iterator iter;
 
    // 접근방법1 
    for( iter = m.begin(); iter != m.end(); iter++)
     cout << "[" << iter -> first  << " , " << iter -> second <<"]" << " ";
 
     cout << "\n\n";
 
 
    //  접근방법2 
    for( iter = m.begin() ; iter != m.end(); iter++)
     cout << "[" << (*iter).first << " , " << (*iter).second << "]" << " "
 
 
    return  0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

 

결과 

 

 

operator 를 이용한 map 순회

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// operator 사용하기
#include<iostream>
#include<map>
using namespace std;
int main()
{
    map<int,int> n;
 
n[9= 109;
n[3= 103;
n[13= 113;
n[15= 115;
n[1= 108;
n[7= 107;
n[5= 105;
n[11= 111;
 
map<int,int>::iterator iter;
 
// 변경전
for( iter = n.begin() ; iter!=n.end(); iter++)
cout << "[" << iter->first << "," << iter->second <<"]" << " ";
 
cout<<"\n\n";
 
// 변경후
 
n[11]=999;
n[1]=999;
 
for( iter = n.begin() ; iter!=n.end(); iter++)
cout << "[" << iter->first << "," << iter->second <<"]" << " ";
 
cout<<"\n\n";
 
 
cout << "size : " << n.size();
 
 
 
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

결과

 

 

개발자 지망생 님의 블로그에서 학습 하였습니다.

 

 

 

 

'C++' 카테고리의 다른 글

c++ string 사용 멤버함수 정리!  (0) 2019.07.18
댓글