본문 바로가기

프로그래밍 언어 공부/알고리즘 공부

map<key, value> 컨테이너

[ 특징 ]

- key와 value 쌍(pair)으로 이루어진 트리, first- key로 second- value로 저장.

- key값은 고유함.

- key값을 기준으로 자동으로 오름차순 정렬, 내림차순을 원한다면 3번째 원소에  greater 추가.

- 헤더 : #include <map>

- map 선언

map<int, string> m;

 

- map에 데이터 삽입

m.insert({3, "Cam"});

 

- 특정키(key)가 맵(map)에 존재하는지 찾기

   1) find()

if (m.find(key) != m.end()) {
    std::cout << "Key found" << std::endl;
} else {
    std::cout << "Key not found" << std::endl;
}

 

   2) count() : 맵의 경우 key가 고유하기 때문에 존재한다면 count 1, 아니라면 0 

if (m.count(key) != 0) {
    std::cout << "Key found" << std::endl;
} else {
    std::cout << "Key not found" << std::endl;
}

 

- 반복문 데이터 접근

   1) 인덱스 기반

for (auto iter = m.begin() ; iter !=  m.end(); iter++)
{
	cout << iter->first << " " << iter->second << endl;
}
cout << endl;
출처: https://life-with-coding.tistory.com/305 [코딩젤리:티스토리]

 

   2) 범위 기반

for (auto iter : m) {
	cout << iter.first << " " << iter.second << endl;
}
출처: https://life-with-coding.tistory.com/305 [코딩젤리:티스토리]

 

- map 삭제

   1) 특정 요소의 위치 삭제

m.erase(m.begin()+2);

 

   2) 키값 기반으 요소 삭제

m.erase("Alice");

 

   3) 모든 요소 삭제

m.erase(m.begin(), m.end());

m.clear();

'프로그래밍 언어 공부 > 알고리즘 공부' 카테고리의 다른 글

<vector> 컨테이너 메소드  (0) 2023.08.02