[C++][STL]map에 pair사용하기

jh Seo·2022년 7월 12일
0

C++공부

목록 보기
13/21

map에 pair을 넣을 때 헷갈려서
공부한 내용을 정리하는 글이다.

선언은

map<pair<int,int>,int> m; 

새로 생성할 땐,

int a,b,c;	//a,b,c의 변수가 있다고 했을때
m[{a,b}]=c;
int a,b,c;	//a,b,c의 변수가 있다고 했을때
m[make_pair(a,b)]=c;
int a,b,c;
m.insert(make_pair(make_pair(a,b),c));

이런 식으로 할 수 있다.

iterator을 이용할 땐,

	for (map<pair<int, int>, int>::iterator iter = m.begin(); iter != m.end();++iter) {
		cout<<iter->first.first;
	}

이런식으로 iter->first가 key값이고 , iter->second가 value값이다.
따라서 iter->first.first는 key값 pair<int,int>에서의 첫번째 값을 의미한다.

for (pair<const pair<int,int>,int> & elem : m) {
	cout << elem.first.first<<" ";
	cout << elem.first.second<<' ';
	cout << elem.second<<'\n';	//이런식으로 first,second를 이용해서 값을 호출할 수 있다.
}

foreach형태를 사용할땐 std::pair<>을 두번 사용한다.
key값은 변경되면 안되는 값이라 const를 지정해줘야한다.

키값을 찾을 땐, 일반 map과 동일하게 find함수를 사용하여 찾는다.

if(m.find({2,4}) == m.end()) 
if(m.find(make_pair(2,4)) == m.end()) 
profile
코딩 창고!

0개의 댓글