프로그래밍/C++

[C++] Map 컨테이너 기본 사용법 및 예제

준코딩 2020. 5. 8. 22:34

사용 라이브러리

 

      · <map>

 

 

기본함수

 

      선언문

 

         · map<key, value> 변수명   

 

 

      추가 및 삭제

 

         · insert( make_pair(key, value) ) : pair 의 형태로 원소를 저장합니다.

        · erase(key) : 해당 key 값에 해당하는 원소를 삭제합니다.

        · clear() : 모든 원소를 삭제합니다.

 

      조회

     

         · find(key) : 해당 key 값의 Iterator 값을 반환합니다.

         · count(key) : 해당 key 값의 원소의 갯수를 반환합니다.

 

 

      기타 함수

     

         · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환

         · size() : 원소의 수를 반환

 

 

예제 코드

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

using namespace std;

int main() {

	/////////////// 선언부 //////////////
	map< string, int > m;


	//// 원소를 추가하는 다양한 방법 ////
	m.insert(make_pair("a", 1));
	m.insert(make_pair("b", 2));

	m.insert({ "c",3 }); // make_pair -> {} 

	m["d"] = 4; // 벡터처럼 접근하는 방법

	// 삭제
	m.erase("d");
	m.erase("b");


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

	// find 는 iter 값을 반환한다.
	// 원소는 pair의 형태이다.
	// 따라서 first 와 second 의 접근자를 사용한다.
	cout << "a : " << m.find("a")->second << '\n';

	// count 는 원소의 갯수를 반환한다.
	// 보통 해당 key 값의 존재여부를
	// count 가 0 인지 아닌지로 판단한다.
	cout << "a count : " << m.count("a") << '\n';

	// 순회
	for (auto iter = m.begin(); iter != m.end(); iter++) {
		cout << "key : " << iter->first << " " << "value : " << iter->second << '\n';
	}

	return 0;

}