Programming/C++

[C++] STL 맵(map) 사용법

몽땅마니아(MDD) 2021. 10. 23. 02:09

맵(map)

각 노드가 key와 value가 쌍으로 이루어진 트리로 key의 중복을 허용하지 않는다.

 

맵에 원소쌍 삽입(페어 이용) 

맵명.insert(pair<데이터타입1, 데이터타입2>(키, 값));

맵명.insert(페어명);

 

해당하는 key 값의 value 반환

맵명[key]

맵명.at(key)

 

해당 하는 키를 갖는 원소쌍의 iterator 반환

맵명.find(key)  //찾을 수 없으면 end()반환

 

맵 사이즈 반환(숫자)

맵명.size()

 

해당 인덱스의 원소쌍 삭제

맵명.erase(iterator로 표현된 인덱스);

 

해당하는 key값을 갖는 원소쌍 삭제

맵명.erase(key);

 

맵에서 사용하는 iterator

맵명.begin()  //첫 번째 원소에 접근 가능한 반복자

맵명.end()  // 마지막 원소에 접근 가능한 반복자

 

맵 내 원소쌍 전체 제거

맵명.erase(맵명.begin(), 맵명.end());

맵명.clear();

 

맵이 비어 있는지 확인 (0,1)

맵명.empty()

 

#include <iostream>
#include <map> //맵을 사용하기 위한 헤더파일

using namespace std;

int main() {
	map <int, string> m;

	m.insert(pair<int,string>(1,"Hwang")); // 맵에 원소쌍 삽입(페어 이용) 맵명.insert(pair<데이터타입1, 데이터타입2>(키, 값));
	pair<int, string> p(2, "Kim");
	m.insert(p); //맵명.insert(페어명);
	m.insert(pair<int, string>(4, "Kang"));

	cout << m[4] << endl; // 해당하는 key 값의 value 반환 - 맵명[key]
	//출력 : Kang
	cout << m.at(4) << endl; // 해당하는 key값의 value 반환 - 맵명.at(key)
	//출력 : Kang

	m.find(2); //해당 하는 키를 갖는 원소쌍의 iterator 반환 - 맵명.find(key)  //찾을 수 없으면 end()반환

	cout << m.size() << endl; //맵 사이즈 반환(숫자) - 맵명.size()
	//출력 : 3

	m.erase(m.begin()); //해당 인덱스의 원소쌍 삭제 - 맵명.erase(iterator로 표현된 인덱스);
	m.erase(1); //해당하는 key값을 갖는 원소쌍 삭제 - 맵명.earase(key값);

	m.erase(m.begin(), m.end()); // 맵 내 원소쌍 전체 제거 - 맵명.erase(맵명.begin(), 맵명.end());
	m.clear();  // 맵 내 원소쌍 전체 제거 - 맵명.clear();

	cout << m.empty() << endl; //맵이 비어 있는지 확인 (0,1)
	//출력 : 1 (true)

	return 0;
}

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

[C++] 문자열 치환 함수 regex_replace  (0) 2021.12.30
[C++] STL 문자열(string) 사용법  (0) 2021.12.24
C++ STL 페어(pair) 사용법  (0) 2021.10.22
C++ STL 벡터(vector) 사용법  (0) 2021.10.22
C++ STL 덱(deque) 사용법  (0) 2021.10.22