PS에서 사용하는 C++ STL - 초급 (pair)
2021. 8. 29. 05:19ㆍ알고리즘 문제풀기/코딩
도입
std::pair
는 원소 두 개짜리 구조체예요. 2차원 평면 상의 점, 수직선 상의 구간, 선분의 양 끝점 등, 두 개로 묶는 자료 구조를 간편하게 사용할 수 있어요.
사용하기
아래와 같이 헤더 파일을 인클루드합니다.
#include <utility>
사용 예시를 볼게요.
#include <iostream>
#include <utility>
using namespace std;
int main()
{
pair<int,int> p;
p.first = 3;
p.second = 4;
cout << p.first << ' ' << p.second << '\n'; // prints: 3 4
return 0;
}
first
와 second
, 이 두 멤버 변수 각각에 값을 저장하고 가져와 사용할 수 있어요. 꺾쇠 안에 들어간 두 타입(int
와 int
)가 각각 first
와 second
의 타입입니다.
대입 연산자를 쓰면 한 번에 값을 옮길 수 있어요.
#include <iostream>
#include <utility>
using namespace std;
int main()
{
pair<int,int> p;
p.first = 3;
p.second = 4;
pair<int,int> q;
q = p;
cout << q.first << ' ' << q.second << '\n'; // prints: 3 4
return 0;
}
함수 내의 로컬 변수로 선언해도 값이 0으로 초기화됩니다.
#include <iostream>
#include <utility>
using namespace std;
int main()
{
pair<int,int> p; // p = {0, 0}, automatically
p.first += 3; // p.first: was 0 -> 3 now
cout << p.first << ' ' << p.second << '\n'; // prints: 3 0
return 0;
}
초기값도 물론 설정 가능해요. 아래의 예시에서 알 수 있듯 중괄호와 소괄호 모두 사용 가능합니다.
#include <iostream>
#include <utility>
using namespace std;
int main()
{
pair<int,int> p{9, 7};
cout << p.first << ' ' << p.second << '\n'; // prints: 9 7
pair<int,int> q(8, 3);
cout << q.first << ' ' << q.second << '\n'; // prints: 8 3
return 0;
}
마지막으로, 서로 다른 타입도 묶을 수 있어요!
#include <iostream>
#include <utility>
using namespace std;
int main()
{
pair<int,char> p{9, 'a'};
cout << p.first << ' ' << p.second << '\n'; // prints: 9 a
pair<char, double> q('x', 2.3);
cout << q.first << ' ' << q.second << '\n'; // prints: x 2.3
return 0;
}
'알고리즘 문제풀기 > 코딩' 카테고리의 다른 글
빠르고 편하게 코딩하는 팁 (1) | 2021.08.24 |
---|---|
PS에서 사용하는 C++ STL - 초급 (vector) (374) | 2021.08.20 |
PS에서 사용하는 C++ STL - 기초 (0) | 2021.08.20 |
std::sort를 이용한 정렬 (2) | 2015.09.20 |
구조체 (0) | 2015.09.20 |