📌 pair class
- 2개의 연관된 데이터를 한 쌍으로 묶어서 객체로 사용하기 위함
✔ pair 사용
#include <utility>
using namespace std;
- <utility> header
- std::pair
✔ pair 생성
pair<string, int> person;
person = make_pair("Juli", 25);
- 문자열과 정수를 쌍으로 갖는 person pair을 선언
- person에
make_pair
를 사용하여 쌍을 생성
✔ pair 멤버 변수 접근
pair<string, int> person = make_pair("Juli", 25);
person.second += 1;
cout << "name: " << person.first << endl;
cout << "age: " << person.second << endl;
.first
: 쌍의 첫번째 멤버 변수 반환
.second
: 쌍의 두번째 멤버 변수 반환
- 멤버 변수 값 변경 가능
✔ pair 연산자
pair<int, int> p1 = make_pair(1, 3);
pair<int, int> p2 = make_pair(3, 3);
pair<int, int> p3 = make_pair(3, 5);
pair<int, int> p4 = p3;
if (p1 < p2)
cout << "p2가 p1보다 크다\n";
if (p2 < p3)
cout << "p3가 p2보다 크다\n";
if (p3 == p4)
cout << "p3과 p4는 같다\n";
- 비교 연산자 사용 가능
- 첫번째 멤버 변수를 우선적으로 비교하고, 같은 경우 두번째 멤버 변수 비교
📌 tuple class
- 2개 이상의 연관된 데이터를 한 쌍으로 묶어서 객체로 사용하기 위함
✔ tuple 사용
#include <tuple>
using namespace std;
- <tuple> header
- std::tuple
✔ tuple 생성
tuple<string, int, char> grade;
grade = make_tuple("Kane", 93, 'A');
- 문자열, 정수, 문자를 갖는 grade tuple을 선언
- grade에
make_tuple
를 사용하여 tuple을 생성
✔ tuple 멤버 변수 접근
tuple<string, int, char> grade = make_tuple("Kane", 93, 'A');
cout << "name: " << get<0>(grade) << endl;
cout << "score: " << get<1>(grade) << endl;
cout << "credit: " << get<2>(grade) << endl;
get
을 이용하여 멤버 변수 접근 가능
- 멤버 변수 값 변경 가능
tuple<string, int, char> grade = make_tuple("Kane", 93, 'A');
string name;
int score;
char credit;
tie(name, score, credit) = grade;
cout << "name: " << name << endl;
cout << "score: " << score << endl;
cout << "credit: " << credit << endl;
tie
를 이용하여 멤버 변수 값을 묶어서 가져올 수 있음
get
방식 보다는 변수 이름을 직관적으로 설정하여 접근 가능
✔ tuple 연산자
tuple<int, int, int> t1 = make_tuple(1, 2, 3);
tuple<int, int, int> t2 = make_tuple(2, 2, 3);
tuple<int, int, int> t3 = make_tuple(2, 2, 7);
if (t1 < t2)
cout << "t2가 t1보다 크다\n";
if (t2 < t3)
cout << "t3가 t2보다 크다\n";