[C++] 2차원 벡터 정렬하는 방법 (Pair Container)

minjgziii·2022년 8월 9일
0

💡 2차원 벡터 선언

📌vector 컨테이너에 pair을 통해 2차원 배열을 만들 수 있음

vector<pair<int, int>> v;

📌벡터 v가 입력받는 게 ('a', 1), ('b',2) 라면?

▶️ <int, int> 대신 아래와 같이 <char, int>로 수정해 주면 된다.

vector<pair<char, int>> v;

💡 벡터 정렬

📌 정렬은 STL의 sort를 이용

sort(v.begin(), v.end()); // 오름차순
sort(v.begin(), v.end(), less<>()); // 오름차순
sort(v.begin(), v.end(), greater<>()); // 내림차순

☑️ 정렬 범위는 벡터의 begin, end 함수를 사용
☑️ 정렬 조건greater, less를 이용
☑️ less는 생략 가능


💡 Pair이란?

📌 Pair의 정의

2개의 객체(first, second)를 하나로 묶어 데이터의 쌍을 표현할 때 사용
주로 벡터와 묶어 2차원 배열처럼 사용하거나, 좌표계를 표현할 때 사용

📌 Pair의 멤버 함수

1. v.first : v의 첫 번째 인자 반환
2. v.second : v의 두 번째 인자 반환
3. make_pair(value1, value2) : value1, value2를 가진 pair 생성


💡 Pair과 vector를 사용한 예제

#include<iostream>
#include<vector>
#include<utility>
using namespace std;

int main() {
vector<pair<int, int>> v;

v.push_back(make_pair(10,20));
v.push_back(make_pair(30,40));
v.push_back(make_pair(50,60));

cout << v[0].first << " " << v[0].second << endl;
cout << v[1].first << " " << v[1].second << endl;
cout << v[2].first << " " << v[2].second << endl;
return 0;
}

📌출력 결과

📌 [참고사이트]
https://cocoon1787.tistory.com/201
https://novlog.tistory.com/13

profile
티스토리로 이사갑니당

0개의 댓글