컴퓨터/C++
C++에서 제공하는 STL 라이브러리에서 가장 기본적인 형태의 컨테이너인 pair를 사용해보도록 합시다.
두 개의 객체를 한쌍으로 묶어서 담을 수 있는 pair형 자료구조는 효율적으로 데이터를 다루는데 비약적인 효과를 발휘할 수 있습니다.
pair클래스를 사용하기 위해서는 pair클래사용하기 위해 라이브러리를 추가해 주어야 합니다.
//STL 라이브러리 pair가 포함된 헤더 파일
//3개중 하나만 추가해도 pair의 사용 가능
#include <utility>
#include <algorithm>
#include <vector>
template <class _Ty1, class _Ty2>
struct pair { // store a pair of values
using first_type = _Ty1;
using second_type = _Ty2;
VisualStudio를 통해 정의를 확인해 보면 위와 같이 돼있는 것을 확인할 수 있습니다.
아직 teplate에 대하여 설명하지는 않았지만 간단하게 위의 내용을 설명하자면 다음과 같습니다.
다시 설명하면 어떠한 자료형이든 담을 수 있으며, 2개의 담긴 형태를 쌍의 형태로 취해 보관하게 됩니다.
소스코드를 이용해서 pair를 선언하고 사용해봅시다.
int main() {
pair<int, int> pair1;
pair<int, string> pair2;
return 0;
}
두 개의 pair를 만들었습니다.
pair1은 정수형 변수 2개를 담을 수 있으며, pair2는 정수와, 문자열을 담는 형태입니다.
선언과 동시에 값을 넣어줄 수도 있습니다.
int main() {
pair<int, int> pair1 = { 1,1 };
pair<int, string> pair2 = { 1,"홍길동" };
return 0;
}
pair는 한쌍의 데이터를 담는 자료구조입니다. pair안에는 first와 second로 값을 접근할 수 있습니다.
int main() {
pair<int, int> pair1 = { 1,1 };
pair<int, string> pair2 = { 1,"홍길동" };
cout << pair2.first << endl;
cout << pair2.second << endl;
return 0;
}
int main() {
pair<int, int> pair1 = { 1,1 };
pair<int, string> pair2 = { 1,"홍길동" };
cout << pair2.first << endl;
cout << pair2.second << endl;
pair2 = { 2,"이순신" };
cout << pair2.first << endl;
cout << pair2.second << endl;
pair2.first = 3;
pair2.second = "아저씨";
cout << pair2.first << endl;
cout << pair2.second << endl;
return 0;
}
예제 소스코드처럼 pair 자체의 값을 한 번에 변경하거나 각각의 원소에 접근하여 변경할 수 있습니다.
이처럼 다양한 자료 형태의 데이터를 한쌍의 형태로 손쉽게 담을 수 있는 C++의 pair에 대해 알아보았습니다.
앞으로 자주 사용하는 STL 자료구조를 알아보면서 편하게 데이터를 다루는 방법을 습득해 봅시다.
C++ - 배열 vector와 2차원 vector (0) | 2022.03.29 |
---|---|
C++ - STL vector 클래스 (손쉬운 동적배열) (0) | 2022.03.21 |
C++ - STL(Standard Template Libary) (0) | 2022.03.17 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet