[C++] C++ STL map 기본 사용법과 예제

C++에서 map 사용법을 간단하게 알아보자


환경 및 선수조건

  • C++


맵 기본 함수

기본형태

  • map<key,value>: key와 value를 pair 형태로 선언합니다.

iterator(반복자)

  • begin(): beginning iterator를 반환
  • end(): end iterator를 반환

추가 및 삭제

  • insert( make_pair(key,value) ): 맵에 원소를 pair 형태로 추가
  • erase(key): 맵에서 key(키값)에 해당하는 원소 삭제
  • clear(): 맵의 원소들 모두 삭제

조회

  • find(key): key(키값)에 해당하는 iterator를 반환
  • count(key): key(키값)에 해당하는 원소들(value들)의 개수를 반환

기타

  • empty(): 맵이 비어있으면 true 아니면 false를 반환
  • size(): 맵 원소들의 수를 반환


구현 코드

#include <iostream>
#include <map>
#include <string>

using namespace std;

int main(){

	// map
	// <string, int> => <key, value>
	map< string, int > m;


	// insert(key,value)
	m.insert(make_pair("a", 1));
	m.insert(make_pair("b", 2));
	m.insert(make_pair("c", 3));
	m.insert(make_pair("d", 4));
	m.insert(make_pair("e", 5));
	m["f"] = 6; // also possible


	// erase(key)
	m.erase("d");
	m.erase("e");
	m.erase(m.find("f")); // also possible


	// empty(), size()
	if(!m.empty()) cout << "m size: " << m.size() << '\n';


	// find(key)
	cout << "a: " << m.find("a")->second << '\n';
	cout << "b: " << m.find("b")->second << '\n';


	// count(key)
	cout << "a count: " << m.count("a") << '\n';
	cout << "b count: " << m.count("b") << '\n';


	// begin(), end()
	cout << "traverse" << '\n';
    // map< string, int >::iterator it; also possible
	for(auto it = m.begin(); it != m.end(); it++){
		cout << "key: " << it->first << " " << "value: " << it->second << '\n';
	}

	return 0;

}


참고자료