벡터처럼 많이 쓰이는 컨테이너로 key와 value가 쌍으로 저장되는 형태이다.
-연관 컨테이너의 종류로 노드 기반으로 이루어져있고 균형 이진 트리 구조이다.
- map은 key와 value 로 이루어져있으며 pair 객체 형태로 저장됨
1)기본형태
map<data type1, data type2> 변수이름
2)iterator(반복자)
- begin() : beginning iterator를 반환
- end() : end iterator를 반환
- insert( make_pair(key,value) ) : 맵에 원소를 pair 형태로 추가
- //m1.insert(pair<int,int>(10,20));
- erase(key) : 맵에서 key(키값)에 해당하는 원소 삭제
- clear() : 맵의 원소들 모두 삭제
- find(key) : key(키값)에 해당하는 iterator를 반환
- count(key) : key(키값)에 해당하는 원소들(value들)의 개수를 반환
기타
- empty() : 맵이 비어있으면 true 아니면 false를 반환
- size() : 맵 원소들의 수를 반환
m[key]=value를 통해 원소 (key,value)를 추가/수정이 가능
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(void) {
map<int, string>m;
m.insert(pair<int, string>(60, "me"));
m.insert(pair<int, string>(30, "show"));
m.insert(pair<int, string>(40, "yja"));
m.insert(pair<int, string>(10, "job"));
map<int, string>::iterator iter; //node기반이라서 이런식으로 해줘야하는듯
for (iter = m.begin();iter != m.end();iter++)
cout << "[" << iter->first << "," << iter->second << "]" << endl;
cout << endl;
for (iter = m.begin();iter != m.end();iter++)
cout << "[" << (*iter).first << "," << (*iter).second << "]" << endl;
return 0;
}
}
접근하는 방법이 두개라서 두개 다 해봄
For문 두개가 두가지 방법
오름차순으로 정렬을 해주고 있다..뭐지
map은 자동으로 key값을 기준으로 오름차순 정렬을 해준다!
이 map을 쌍 정수 합구하기에 어떻게 적용을 해야할지
생각해봐야겠다..
출처
https://twpower.github.io/91-how-to-use-map-in-cpp
https://blockdmask.tistory.com/87
'까먹어서 다시하는 c++' 카테고리의 다른 글
c++ atoi, stoi 문자열을 int 로 - string to int (0) | 2020.04.24 |
---|---|
c++ equals, equal 함수 구현하기- 문자열 비교하기(==, compare, strcmp) (0) | 2020.04.24 |
코테용- c++ split 함수 (string 나누기/string 잘라서 배열에 넣기) (3) | 2020.04.16 |
까먹어서 다시하는 c++ 1일차 (5) | 2019.05.08 |