1. map
key, value로 이루어진 컨테이너
key값을 기준으로 자동 정렬 (기본 오름차순 정렬, 내림차순도 정의 가능)
***레드블랙 트리로 구현되어 있다고 한다.. 레드블랙트리가 뭐지?
https://hyo-ue4study.tistory.com/149
1. #include <map>
2. 선언 : map<key type, value type> 변수명
3. 검색 : m.find(key) -> 존재하면 해당 이터레이터 반환. 없으면 m.end() 반환
4. 삽입 : m.insert(make_pair( , ) or { , }) -> 중복 허용x. key가 중복되면 insert 수행 안됨
5. 접근 : 랜덤 접근 불가. begin() 부터 서치해야함. next, prev 함수 사용 가능
***for (auto m : map) 으로 접근하면 직접 접근이 아니라서 데이터 변경이 불가능하다.
***for (auto ite = map.begin(); ite!=map.end(); ite++) 형태로 접근해야 포인터로 데이터 직접 수정이 가능
***char 배열 형태로 key를 넣게 되면 주소값으로 들어간다. insert가 참조형으로 데이터 복사하는듯. for문 돌릴꺼면 new로 계속 새로 생성해줘야,,
***위의 이유로 find도 제대로 안먹힌다.
6. 삭제 : m.erase(이터레이터 or key), m.erase(이터레이터, 이터레이터) = 범위삭제, m.clear()
'Languages > C & C++' 카테고리의 다른 글
C++ : STL heap (0) | 2023.01.05 |
---|---|
C++ : STL Priority Queue (0) | 2023.01.05 |
C++ : STL map, set 처럼 인덱스 엑세스가 불가능한 컨테이너 접근하기 (0) | 2023.01.05 |
기묘한 시간초과... (0) | 2023.01.05 |
C++ : lower_bound 의 활용 (0) | 2023.01.05 |