본문 바로가기
5장 컴퓨터 과학/Data Structure & Algorithm

[자료구조] 맵 (Map)

2021. 6. 14.

개념

맵(Map)은 원소를 저장하고 그것을 이용하여 빠르게 찾을 수 있도록 한다. 맵은 검색키를 이용하여 정보에 접근한다. 엔트리라 불리는 키-값 쌍(k, v)을 저장하며, 여기서 k는 키이고 v는 연관된 값이다. 각 키는 유일하고 키와 의 연관은 매핑을 정의한다.

추상 데이터 타입(ADT)

  • size(): 맵에 저장된 원소의 개수를 반환한다.
  • empty(): 맵이 비었으면 true를 그렇지 않으면 false를 반환한다.
  • find(k): 키 k를 갖는 엔트리를 찾아 그것을 가리키는 iterator를 반환한다. 그러한 키가 없으면 iterator end를 반환한다.
  • operator[k]: 키 k의 값에 대한 레퍼런스를 생성한다. 그러한 키가 없으면, 키 k를 갖는 새로운 엔트리를 생성한다.
  • insert(pair(k, v)): 쌍 (k, v)를 삽입하고 그 위치에 대한 iterator를 반환한다.
  • erase(k): 키가 k와 같은 엔트리를 삭제한다. 그런 엔트리가 없으면 에러를 발생한다.
  • erase(p): iterator p가 가리키는 엔트리를 맵에서 삭제한다. p가 end 센티널을 가리키면 에러를 발생한다.
  • begin(): 맵의 첫 번째 엔트리에 대한 iterator를 반환한다.
  • end(): 맵의 마지막 원소 바로 뒤의 위치에 대한 iterator를 반환한다.

구현

C++에서 stl의 map, list등을 이용하여 구현 가능하다.

반응형

댓글