C++ Map
C++에는 map이라는 Key-Value 자료구조가 있다.
map은 하나의 Key에 하나의 Value를 저장하고, Key를 기준으로 데이터를 관리한다.
처음에 빈 map $M$이 있다. $Q$개의 쿼리를 순서대로 처리하라.
쿼리는 다음 중 하나이다.
insert k v: $M$에 Key $k$에 Value $v$를 저장한다. 이미 $k$가 있다면 Value를 $v$로 바꾼다. $(-10^9 \leq k,v \leq 10^9)$erase k: $M$에서 Key $k$를 삭제한다. $k$가 없다면 아무 일도 일어나지 않는다. $(-10^9 \leq k \leq 10^9)$count k: $M$에 Key $k$가 있으면1, 없으면0을 출력한다. $(-10^9 \leq k \leq 10^9)$get k: $M$에 Key $k$가 있으면 그 Key에 대응하는 Value를 출력하고, 없으면-1을 출력한다. $(-10^9 \leq k \leq 10^9)$size: $M$에 저장된 Key의 개수를 출력한다.
입력
첫 번째 줄에 쿼리의 개수 $Q$가 주어진다. $(1 \leq Q \leq 100\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 하나씩 주어진다.
출력
count, get, size 쿼리가 주어질 때마다 쿼리의 결과를 한 줄에 하나씩 출력한다.
예제 입력 1
13 size insert 3 10 get 3 count 3 insert 3 20 get 3 size insert 5 -7 size erase 3 count 3 get 3 get 5
예제 출력 1
0 10 1 20 1 2 0 -1 -7
노트
C++에서 int Key와 int Value를 저장하는 map은 다음과 같이 선언할 수 있다.
map<int, int> M;
map을 사용하려면 #include<map>이 필요하다.