1. map 기초
- key, value의 쌍 저장.
- key는 중복될 수 없다.
- 키 기준으로 binary search tree 로 자동 정렬한다.
insert
키는 중복으로 삽입할 수 없고 삽입의 결과 iterator를 반환한다.
operator[]
key 에 대응하는 값을 참조로 반환하고, 키가 없으면 새 요소를 삽입한다.
map<string, int> scoreMap;
int value = scoreMap["coco"]; 일 경우 예외가 발생하진 않으므로 안전하지 않다.
find
키를 기준으로 반복자를 검색한다. 못찾을 경우 end iterator를 반환한다.
swap
두 맵의 키와 값을 바꿔준다.
clear
전체 맵을 삭제한다.
erase
한 요소를 제거한다.
2. set 기초
map과 거의 같지만 key가 아니라 value 자체가 키가 됨으로 중복되지 않아야 한다.
3. map 활용
- 키값으로 클래스를 사용할 수 있지만 정렬을 해야함으로 operator< 연산자를 클래스에 만들어야 한다.
- 다른 사람이 만든 구조체나 클래스를 키로 사용할 경우 연산자를 재정의 할 수 없으므로 별도의 연자 구조체를 만들어야 한다.
struct Comparer
{
bool operator()(const className& left, const className& right) const
{
....
return ...
}
}
'Language & Toolkit > C++' 카테고리의 다른 글
STL container - std::list (0) | 2019.03.10 |
---|---|
STL container - std::queue & stack (0) | 2019.03.10 |
STL container - std::vector (0) | 2019.03.09 |
Beginning C++17 - Chapter 7: Working with Strings (0) | 2019.02.06 |
Beginning C++17 - Chapter 6: Pointers and References (0) | 2019.02.06 |