상세 컨텐츠

본문 제목

[STL] 2차원 multiset과 그 사용법

C++

by CASTLELONG 2022. 3. 29. 23:36

본문

프로그래머스 문제를 풀다가 시간초과로 인해 자꾸 틀리는 경우가 발생해 2차원 multiset의 사용법을 공부했다.

multiset의 장점은 자동으로 sort를 해주는 것이다.

그 기본적인 사용법은 다른 곳에서 보고 오는 것이 더 낫다.

2차원 multiset의 선언은 vector같은 다른 STL과 같다.

multiset<multiset<int>> ms;

혹은

multiset<vector<int>> ms;

선언은 쉽다.

나는 2차원배열의 첫번째 원소들을 토대로 정렬할 예정이다. ex) 1,2 6,2, 5,6 -> 1,2 5,6 6,2

그러므로 multiset<vector<int>>형을 쓰겠다.

multiset은 대괄호로 참조가 안되니 iterator를 써야한다.

그래서 

multiset<vector<int>>::iterator iter로 iterator를 만들어주고 iter = ms.begin()으로 초기화

이제 2차원 중 행은 접근을 할 수 있다.

해당 행의 원소들은 *(iter->begin())으로 접근하면 된다.

 

multiset<vector<int>> ms = { {1, 2}, {6, 2}, {5, 6} };

for (multiset<vector<int>>::iterator iter = ms.begin(); iter != ms.end(); iter++)
        cout << *(iter->begin()) << "\n";

 

태클은 언제나 환영

댓글 영역