vector<int> tangerine = {1,1,1,2,2,2,3,3,3,4,5,5,5};
map<int,int> mp;
for (int i = 0; i < tangerine.size(); i++) {
mp[tangerine[i]]++;
}
for (int i = 0; i < mp.size(); i++) {
cout << mp[i];
}
cout << endl;
for (auto iter = mp.begin(); iter != mp.end(); iter++) {
cout << iter->second;
}
mp[i] = 맵에 i라는 숫자의 value값을 출력해준다. 위 코드는 차례대로 무슨 값들이 들어갔는지를 알기 위해서 for문을 돌렸는데 두번째 for문에서 처음부터 돌리려고 0부터 출력을 해서 위 아래 답이 계속 033313이 출력되었다.(원래 답은 33313)
두번째 for문을 지우고 출력했더니 다시 33313이 나왔다. 두번째 for문에서 탄자린에 없는 0을 출력하려고 mp[0]를 적어서 자동으로 0으로 초기화 한 값을 넣었던 것이였다.
mp[키] 이렇게 하면 value가 0으로 자동 초기화 됨으로 전부 출력하려면 마지막처럼 출력해야하는걸 명심하자.
'C++' 카테고리의 다른 글
[C++] inline 함수와 함수 호출, 리턴 과정 (0) | 2024.11.26 |
---|---|
[C++] 버퍼와 플러시 (0) | 2024.10.23 |
[C++] 전역변수와 지역변수 (0) | 2024.10.19 |
[C++] 헤더 종류 (0) | 2024.10.19 |
[C++] memset() vs fill_n() (0) | 2024.10.19 |