반응형
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 |
댓글