까먹어서 다시하는 c++

c++ STL map

FireStone 2019. 6. 10. 01:56

벡터처럼 많이 쓰이는 컨테이너로 key와 value가 쌍으로 저장되는 형태이다.

 

-연관 컨테이너의 종류로 노드 기반으로 이루어져있고 균형 이진 트리 구조이다.

-  map은 key와 value 로 이루어져있으며 pair 객체 형태로 저장됨

 

 

1)기본형태

 

map<data type1, data type2> 변수이름

 

2)iterator(반복자)

  • begin() : beginning iterator를 반환
  • end() : end iterator를 반환
  • insert( make_pair(key,value) ) : 맵에 원소를 pair 형태로 추가 
  • //m1.insert(pair<int,int>(10,20));
  • erase(key) : 맵에서 key(키값)에 해당하는 원소 삭제
  • clear() : 맵의 원소들 모두 삭제
  • find(key) : key(키값)에 해당하는 iterator를 반환
  • count(key) : key(키값)에 해당하는 원소들(value들)의 개수를 반환

기타

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

m[key]=value를 통해 원소 (key,value)를 추가/수정이 가능

 

#include<iostream>
#include<map>
#include<string>
using namespace std;

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

	m.insert(pair<int, string>(60, "me"));
	m.insert(pair<int, string>(30, "show"));
	m.insert(pair<int, string>(40, "yja"));
	m.insert(pair<int, string>(10, "job"));
	
	map<int, string>::iterator iter; //node기반이라서 이런식으로 해줘야하는듯

	for (iter = m.begin();iter != m.end();iter++)
		cout << "[" << iter->first << "," << iter->second << "]" << endl;
	cout << endl;
	for (iter = m.begin();iter != m.end();iter++)
		cout << "[" << (*iter).first << "," << (*iter).second << "]" << endl;
	return 0;
}
}

접근하는 방법이 두개라서 두개 다 해봄

For문 두개가 두가지 방법

오름차순으로 정렬을 해주고 있다..뭐지

map은 자동으로 key값을 기준으로 오름차순 정렬을 해준다!

 

이 map을 쌍 정수 합구하기에 어떻게 적용을 해야할지

생각해봐야겠다..

출처

https://twpower.github.io/91-how-to-use-map-in-cpp

 

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

Practice makes perfect!

twpower.github.io

https://blockdmask.tistory.com/87

 

[C++] map container 정리 및 사용법

안녕하세요. BlockDMask 입니다. 오늘은 연관 컨테이너 set, multiset, map, multimap 중. key와 value가 쌍으로 저장되는 map에 대해서 알아보도록 하겠습니다. std::map은 std::vector 처럼 정말 많이 쓰이는 컨..

blockdmask.tistory.com