개요
C++ STL 중 하나인 Map의 사용방법을 정리해보자
맵은 Key와 Value를 가지고 있고 index 대신 Key로 값을 찾는 컨테이너이다.
Map 선언
#include <iostream>
#include <map>
using namespace std;
int main(){
map<string, int> m1;
map<int, string> m2 = {
{1, "first"},
{2, "second"},
{3, "third"}
};
map<int, vector<int>> m3;
map<pair<int, int>, string> m4;
Map 복사
int main(){
map<int, string> original;
original[0] = "Apple";
original[1] = "banana";
map<int, string> copy1(original); //복사 생성자
auto copy2 = original; //대입 연산자
map<int, string> copy3;
copy3.insert(original.begin(), original.end()); //insert 사용
}
Map의 자동 정렬
map은 넣은 순서에 상관없이 Value를 기준으로 정렬된다.
int main() {
map<int, string> myMap;
myMap[5] = "E";
myMap[2] = "B";
myMap[8] = "H";
myMap[1] = "A";
myMap[3] = "C";
for (pair<int, string> p: myMap) //값이 정렬되어 출력
cout << p.first << ", " << p.second << "\n";
/* 출력 결과
1, A
2, B
3, C
5, E
8, H
*/
Map에 insert로 원소 추가
int main(){
map<int, string> m1;
m1.insert(make_pair(1, "Apple");
m1.insert(make_pair(2, "banana");
m1.insert(make_pair(3, "Cherry");
}
Map find
find로 특정 key의 value를 찾을 수 있다.
int main() {
map<int, string> m1;
m1[1] = "Apple";
m1[2] = "Banana";
map<int, string>::iterator it = m1.find(2); //Key로 찾는다.
if (it == m1.end()) cout << "Not Found";
else cout << it.first << ", " << it.second << "\n";
}
'C++' 카테고리의 다른 글
[C++] STL queue (0) | 2024.12.30 |
---|---|
[C++]STL stack (0) | 2024.12.29 |
[C++]템플릿 사용 시 파일 분할 (0) | 2024.12.23 |
[C++] 템플릿의 특수화 (0) | 2024.12.23 |
[C++] unique_ptr, shared_ptr (1) | 2024.12.23 |