1620번: 나는야 포켓몬 마스터 이다솜
첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면
www.acmicpc.net
Map 자료구조란?
Key, Value를 쌍으로 가지는 자료구조로, Key에 따른 Value가 저장되는 형태를 갖는다. 여러 개의 같은 Value는 가능하지만 여러 개의 같은 Key는 불가능하다. |
위 문제가 아마 Map 자료구조의 대표문제일 것 같다.
C++에서 사용하는 법은

선언은 위처럼 할 수 있다.
map STL을 include한 후,
map<{ key가 될 자료형 }, { value가 될 자료형 }> 이름 으로 선언한다.
map은 자동으로 pair자료형을 사용하고 있다. (key와 value가 한 쌍의 자료구조 이므로)
따라서 map에 insert함수를 사용할 때는 pair 자료형을 사용해야 한다.
- make_pair{val1, val2}
- {val1, val2}
와 같은 형태로 삽입하면 된다.
find(key_val) 메서드는 매개변수로 들어온 키 값에 해당하는 자료가 있는지 여부를 체크하는 메서드이다. 없다면 end() 반복자를 리턴한다.
insert(pair<val1, val2>) 메서드는 Map에 자료를 삽입하는 메서드이다.
at(key_val) 메서드는 매개변수로 들어온 키 값에 해당하는 자료를 리턴하는 메서드이다.
'코딩 > C++' 카테고리의 다른 글
[C++] priority_queue STL 비교 구조체 comparator 사용하기 (0) | 2021.09.01 |
---|---|
[C++] 문자열(문자)을 정수형처럼 다루는 메서드 (0) | 2021.08.17 |
[C++] Comparator 사용시 주의사항 (0) | 2021.08.17 |
[C++] 2차원 배열 0, -1로 초기화하기 memset 메서드 사용 (0) | 2021.08.06 |
<algorithm> STL에서 sort의 comparator 작성 시, invalid comparator 문제 (0) | 2021.07.30 |