반응형
    
    
    
  Map은 key와 value쌍으로 이루어져 있는 자료구조이며, key값을 주면 key에 해당하는 value값을 반환하게 된다.
map은 <map> 헤더파일에 있다.
이제 가장 기본적인 기능들을 예제 위주로 설명할 것이다.
먼저 iterator은 반복자라는 뜻이고, 데이터 집합이 주소값으로 저장되어 있는 객체이다.
1. 삽입
map[key]=value;
map.insert(make_pair(key,value));
위 2가지 방법으로 삽입 가능하다.
key값은 정수가 아닌 문자열도 가능하다는 것이 map구조에서 가장 눈에 띄는 특징이다.
map은 기본적으로 key값 기준 오름차순으로 정렬 된다.
2. 삭제
map.erase(key);
주어진 key와 그 key의 value쌍을 삭제한다.
3. 조회
map[key];
주어진 key의 value값을 출력한다.
4. 존재 여부 확인
map.count(key);
주어진 key의 요소 개수를 반환한다. 그런데 key는 고유값이므로 count함수는 0,1만 반환 가능하다.
5. 값 변경
map[key]+=a;
map[key]=value;
map[key]는 value이므로, 일반적으로 변수를 변경할 때처럼 다루면 된다.
#include <iostream>
#include <string>
#include <map>
using namespace std;
map<string,int> kimcoder;
map<string,int>::iterator iter;
int main(){
    //insert
    cout << "Insert" << "\n";
    kimcoder["Korean"]=79;
    kimcoder["Math"]=84;
    kimcoder.insert(make_pair(("English"),81));
    kimcoder.insert(make_pair(("Science"),83));
    kimcoder.insert(make_pair(("Programming"),97));
	  
    for(iter=kimcoder.begin();iter!=kimcoder.end();iter++){
        cout << iter->first << " : " << iter->second <<"점"<<"\n";
    }
    cout << "\n";
    
    //erase
    cout << "Erase" << "\n";
    kimcoder.erase("Korean");
    
    for(iter=kimcoder.begin();iter!=kimcoder.end();iter++){
        cout << iter->first << " : " << iter->second <<"점"<<"\n";
    }
    cout << "\n";
    
    //check
    cout << "Check" << "\n";
    cout << kimcoder["Programming"] << "\n";
    cout << "\n";
    
    //count
    cout << "Count" << "\n";
    if(kimcoder.count("English")>0){
        cout << "exist!" << "\n"; 
	}
    else cout << "not here!" << "\n";
	
    if(kimcoder.count("Circuit")>0){
        cout << "exist!" << "\n"; 
    }
    else cout << "not here!" << "\n";
    cout << "\n";
    
    //change value
    cout << "Change value" << "\n";
    kimcoder["Science"]+=10;
    kimcoder["Programming"]=100;
	
    for(iter=kimcoder.begin();iter!=kimcoder.end();iter++){
        cout << iter->first << " : " << iter->second <<"점"<<"\n";
    }
}
반응형
    
    
    
  '유용한 정보, 링크' 카테고리의 다른 글
| 메모장으로 열기 메뉴 추가하기 (1) | 2020.12.04 | 
|---|---|
| 3줄컷! 초 간단 난수(Random) 생성기 (0) | 2020.10.01 | 
| C++ Vector 사용법 (0) | 2020.09.11 | 
| C++ Vector 중복 요소 제거하기 (0) | 2020.09.11 | 
| 파일 경로 개념잡기 (절대경로와 상대경로) (0) | 2020.08.27 | 
 
										
									 
										
									 
										
									 
										
									
댓글