1. 정리
tuple은 여러 값을 하나로 묶어 보관할 때 쓴다. pair가 두 값으로 제한되는 반면 tuple은 세 개 이상의 값을 담을 수 있다.
string과 int로 구성한 tuple을 vector에 추가하고, 두 번째 값 기준으로 정렬한 뒤 출력한다.
vector<tuple<string, int>> v;
v.emplace_back("TEST_1", 1);
v.emplace_back("TEST_2", 2);2. tuple 요소 출력
get<index>로 tuple 내부 값에 접근한다. get<0>은 string, get<1>은 int를 가리킨다.
for (const auto& item : v) {
cout << get<0>(item) << " : " << get<1>(item) << endl;
}3. 두 번째 값 기준 정렬
비교 함수를 전달하면 원하는 tuple 요소를 기준으로 정렬할 수 있다. 아래 코드는 int 값을 기준으로 내림차순 정렬한다.
bool compare(const tuple<string, int>& a, const tuple<string, int>& b) {
return get<1>(a) > get<1>(b);
}
sort(v.begin(), v.end(), compare);tuple은 별도 구조체를 정의하기에는 작은 데이터를 빠르게 묶어야 할 때 유용하다. 각 요소의 의미가 복잡해지면 이름을 줄 수 있는 구조체를 쓰는 편이 읽기 쉽다.
댓글을 불러오고 있습니다.