[c++]- map

2022. 5. 1. 17:28· Skils/C++
목차
  1. map이란?
  2. 그럼 map은 무엇이냐?
  3. map의 활용방법

코드를 짜는데 map의 개념이 부족해서 굉장히 시간이 오래 걸렸다.

그래서 부족한 개념을 정리하는데 이 카테고리를 쓸 예정이다.

 

map이란?

map을 이해하기 위해서는 set에 대한 이해가 필요합니다.

set은 key라고 불리는 원소들의 집합으로 이루어진 컨테이너입니다.

key에서 중요한 특징은 중복을 허용하지 않는다는 점입니다.

set은 key값의 순서대로 정렬이 되는 특징이 있습니다. 

이때의 정렬 방식은 inorder방식을 따릅니다.

중복되면 안 되고 정렬이 되어있다.!!

 

그럼 map은 무엇이냐?

map은 set에서 value값이 추가된 것이라고 보면 된다.

map은 set에서 추가된 것이기 때문에 중복을 허용하지 않지만, value는 중복을 허용한다.

 

map의 기본 형태는

map <key, value> m;

map은 pair 객체로 저장되는데 first는 key를 나타내고, second는 value를 나타낸다.

 

map을 사용하기 위해서는 헤더 파일 #include <map>을 선언해야 합니다.

 

  • map의 예시
map<char,int>m;

 

map의 사용방법

  1. map.insert({"abc",5})
  2. map.insert(pair <int, string>("abc",5));
  3. map.insert(map.begin(), map.end());
  4. map.insert(make_pair("abc",5));

여기서 "abc"가 map->first이고 , 5가 map->second를 의미한다.

 

map의 활용방법

1) map.find()

map에서 데이터를 찾을 때는 iterator을 사용합니다.

데이터를 못 찾을 경우 iteator은 map.end()를 반환한다.

map<char, int>m;
char a = 'c';
int x = 100;
m.insert(make_pair(a,x));
if (m.find('a') != m.end())
{
cout << "못찾았습니다";
}
else
cout << "찾았습니다 ";

2) map.erase , map.clear

  • 특정 위치를 정해서 삭제
m.erase(m.begin()+3);
  • 값을 기준으로 삭제
m.erase("abc");
  •  모든 원소 삭제
m.erase(m.begin(),m.end());
  • clear를 활용한 모든 원소 삭제
m.clear();
  • map value값 최신화

map은 key값이 중복되면 원래 있던 값에서 바뀌지 않는다.

최신화를 하는 방법은 

m[key]=value;

기존 key값의 value가 바뀐다.

  • map에 있는 key값에 해당하는 value를 추출하기
m.find(key)->second;
저작자표시 (새창열림)

'Skils > C++' 카테고리의 다른 글

ios_base::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)을 붙여야 하는 이유  (0) 2022.08.16
[C++] 공백을 포함한 문자열 처리[getline(),cin.getline(),gets_s(),stringstream]  (0) 2022.06.28
[C++] range based for(범위기반 for 반복문)  (0) 2022.06.23
[C++]-vector 사용법  (0) 2022.05.03
  1. map이란?
  2. 그럼 map은 무엇이냐?
  3. map의 활용방법
'Skils/C++' 카테고리의 다른 글
  • ios_base::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)을 붙여야 하는 이유
  • [C++] 공백을 포함한 문자열 처리[getline(),cin.getline(),gets_s(),stringstream]
  • [C++] range based for(범위기반 for 반복문)
  • [C++]-vector 사용법
재한
재한
안녕하세요 💻
재한
짜이한
전체
오늘
어제
  • 분류 전체보기 (504)
    • Skils (118)
      • Android (52)
      • C++ (5)
      • Kotlin (36)
      • Algorithm (24)
      • Server (1)
    • CodingTest (228)
      • Programmers (45)
      • Baekjoon (183)
    • Experience (8)
      • 후기(코딩테스트,프로그램,프로젝트) (8)
    • Computer Science (70)
      • Design Pattern (2)
      • OOP (2)
      • Computer Architecture (14)
      • OS (2)
      • Software Engineering (3)
      • DataBase (8)
      • Network (39)
    • 학교 (75)
      • R프로그래밍 (26)
      • 회계와 사회생활 (17)
      • 컴퓨터학개론 (20)
      • it기술경영개론 (12)

블로그 메뉴

  • 홈
  • 태그
  • 카테고리
  • 글쓰기
  • 설정

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
재한
[c++]- map
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.