Skip to content

Map & Set #1

@gyurim

Description

@gyurim

Map

# include < map >

정의

인덱스로 int가 아닌 다른 자료형을 사용할 수 있는 배열
(배열이라고 했지만, 내부적인 구조는 각 노드가 unique한 key와 value의 쌍으로 이루어진 트리 (레드 블랙 트리 ))
key를 기준으로 정렬된 상태
같은 key를 갖는 노드를 추가하면, 해당 key값을 갖고 있던 원래 노드의 value값에 덮어씌워지게 된다.
map은 요소에 접근할 때, 반복자(iterator)를 이용하는 방식과 인덱스(key)를 이용하는 방식 두가지 사용 가능

사용법

  • m.insert(make_pair(k,v)) : m에 key가 k이고, value가 v인 노드 추가

  • m.insert(v.begin(), v.end()) : v에 있는 모든 값 추가

  • m.erase(k): m에서 key가 k인 노드 삭제

  • m.erase(m.begin()): map의 첫번째 원소 삭제

  • m.find(k): m에서 key가 k인 노드를 찾아, 해당 노드를 가리키는 iterator 리턴

  • map<char,int> m;

  • map<char,int>::iterator it;

  • for (it = m.begin(); it != m.end(); it++)

    • cout << it->first << “ “ << it->second;

Set

# include < set >

정의

Kay만 있는 map 혹은 정렬된 집합.
set이 갖는 값들은 중복을 허락하지 않고 정렬되어 있다.

사용 용도

특정 값에 대해 검색을 빠르게 하고 싶은 경우

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions