CPP의 STL(Standard Template Library) 중 맵을 배웠다.
배열
우리는 핸드폰의 연락처를 검색할 때, 보통 이름을 검색하여 해당하는 전화번호를 찾는다. 이처럼 특정 키를 사용하여 값을 검색하는 기능을 제공하는 컨테이너가 맵이다.
배열은 정수형 인덱스를 활용하여 특정 위치의 값을 빠르게 찾아주지만, 맵은 키를 활용하여 값과 쌍으로 저장하고 검색한다. 맵은 이러한 기능을 제공하는 대표적인 연관 컨테이너이다.
맵의 특성
pair<const Key, Value>형태로 저장된다.맵의 선언

#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, string> myMap;
// 값 삽입
myMap[1] = "Apple";
myMap[2] = "Banana";
myMap.insert({3, "Cherry"});
// 값 접근
cout << myMap[2] << endl; // Banana
// 반복자 사용
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << ": " << it->second << endl;
}
return 0;
}
insert() // 새로운 키-값 쌍 삽입
find(key) // 해당 키를 가진 요소의 반복자 반환
erase(key) // 해당 키의 요소 삭제
clear() // 모든 요소 삭제
size() // 요소 개수 반환
empty() // 비어 있는지 확인
operator[] // 키를 통해 값 접근 및 삽입
sisert() : make_pair를 이용하여 pair 객체를 생성한 후 insert 함수를 사용하여 새로운 키-값 쌍을 삽입할 수 있다. 또한 {}를 활용한 방법이나 []를 사용하여 값을 추가할 수도 있다.
find() : 특정 키가 map에 존재하는 지 확인 할 수 있다. 키가 존재하면 해당 키의 이터레이터를 반환하고, 존재하지 않으면 map.end()를 반환한다.
erase() : 맵에서 특정 Key를 가진 요소만 삭제한다.
clear() : 맵에 있는 모든 원소를 삭제하는 함수이며, 맵뿐 아니라 대부분 컨테이너에 존재한다.
size() : 맵에 키-값 쌍의 개수를 반환하는 함수이다.
empty() : 맵에 저장된 요소가 하나도 없을 경우 true를 반환, 하나라도 있으면 false를 반환한다.
operator[] : map[key] 형태로 사용되며 값 접근, 값 삽입 또는 수정 역할을 한다.
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, string> fruits;
// 값 삽입
fruits[1] = "Apple";
fruits[2] = "Banana";
// 값 수정
fruits[2] = "Blueberry";
// 값 조회
cout << fruits[1] << endl; // Apple
cout << fruits[2] << endl; // Blueberry
// 존재하지 않는 키 접근 → 자동 삽입
cout << fruits[3] << endl; // 빈 문자열 출력
}
STL 기능엔 다양한 자료(데이터) 활용 방법이 있는 것 같다. 이 기능과 역할을 잘 이해하면 복잡한 기능도 구현할 수 있을 것 같다.
5번째 과제 수행(계속), C++ 언어복습 STL