C++에서 pair는 두 개의 값을 하나의 단위로 묶을 때 유용한 STL(Standard Template Library)의 일부이다. pair를 사용하면 문자열과 정수, 정수와 정수 등 다양한 데이터 타입의 두 값을 쌍으로 묶어 쉽게 관리할 수 있다.
1. std::pair 사용을 위한 헤더 포함
#include <utility>
std::pair는 utility 헤더를 포함시키면 사용할 수 있지만 이미 vector나 map, algorithm 같이 자주쓰는 헤더에 utility 헤더가 포함되어 있기 때문에 별도로 utility 헤더를 포함시키지 않아도 쓸 수 있는 경우가 많다.
2. pair 생성하고 요소에 접근하기
#include <iostream>
#include <utility>
#include <string>
using namespace std;
int main() {
pair<int, string> myPair;
myPair.first = 1; // 첫 번째 요소에 접근
myPair.second = "첫 번째"; // 두 번째 요소에 접근
cout << myPair.first << ", " << myPair.second << endl;
return 0;
}
3. make_pair 함수 사용하기
make_pair 함수는 두개의 파라미터를 묶은 pair를 만두는 함수로 변수를 초기화하거나 값을 대입할 때 유용하게 사용할 수 있다.
#include <iostream>
#include <utility>
using namespace std;
int main() {
auto myPair = make_pair(1, "첫 번째");
cout << myPair.first << ", " << myPair.second << endl;
return 0;
}
4. pair를 사용해서 함수에서 두 값을 반환하는 예시
#include <iostream>
#include <utility>
using namespace std;
pair<int, double> calculate(int a, int b) {
int sum = a + b;
double avg = (a + b) / 2.0;
return make_pair(sum, avg);
}
int main() {
auto result = calculate(5, 10);
cout << "합계: " << result.first << ", 평균: " << result.second << endl;
return 0;
}
5. map 컨테이너에서 사용되는 예시
map 컨테이너는 key와 value 쌍으로 std::pair 객체로 저장되는 것으로 내부 구조는 균형 이진트리를 기반으로 한다.
한편 pair 객체를 추가할 때 make_pair 함수를 사용할 수도 있지만 중괄호를 사용해 초기화하는 방법도 있다.
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
map<std::string, int> myMap;
// 요소 추가
myMap.insert(make_pair("첫 번째", 1));
myMap.insert({"두 번째", 2});
myMap["세 번째"] = 3;
// 요소 접근
for (const auto& elem : myMap) {
cout << elem.first << " => " << elem.second << endl;
}
return 0;
}
'프로그래밍 > C++' 카테고리의 다른 글
C++ ] leetCode 3005 - Count Elements With Maximum Frequency (0) | 2024.04.16 |
---|---|
C++ ] std::stack 사용법 (0) | 2024.03.20 |
C++ ] std::sort 사용법 with 람다식 (0) | 2024.02.20 |
C++ ] string -> char *, char * -> string 변환 (0) | 2024.02.18 |
C++ 에서 구조체와 클래스의 차이 (0) | 2024.02.14 |