본문 바로가기
알고리즘

[C++] 데이터 구조(3) - Map structures

by lewns2 2021. 6. 21.

본 게시글은 "Competitive Programmer's Handbook"을 보며 임의로 해석하며 공부한 내용입니다.

 

 

Map structures

맵은 키-값 쌍으로 구성된 배열을 말한다.

 

C++ 표준 라이브러리는 2가지 맵 구현체를 포함한다. 

  1. map 구조는 밸런스 이진 트리 기반으로, 원소 접근 시간은 O(logn)이다.
  2. unorderd_map 구조는 해싱을 사용하며, 원소 접근 시간은 평균 O(1)이다.

1. map 함수 선언 (키 : string, 값 : integers)

map<string, int> m;

m["monkety"] = 4;
m["banana"] = 3;
m["harpsichord"] = 9;

cout << m["banana"] << endl; // 3

 

 

2. Key에 대한 값을 요청했지만, map에 존재하지 않는다면, Key는 자동적으로 map에 기본값을 추가된다.

 

- 아래 코드에서 값이 0인 키 "aybabtu"가 map에 추가된다.

map<string, int> m;

cout << m["aybabtu"] << endl; // 0

 

3. count 함수 : map에 key가 존재하는 지 확인한다.

if (m.count("aybabtu")) {
	// key exists
}

 

4. 모든 키-값 프린트하기

for(auto x : m) {
	cout << x.first << " " << x.second << endl;
}

 

728x90
반응형