반응형
std::pair는 두 개의 변수나 객체를 하나로 묶어 전달 할 때 사용된다.
1. 사용법
#include <utility>
std::pair< var-type1, var-type2 > var;
(1) 인자
1-1) var-type : 변수나 객체의 타입을 지정
2. 사용 예제
#include <iostream>
#include <vector>
#include <utility>
#include <tuple>
using Type = std::pair<int, std::string>;
void print(const Type& param)
{
std::cout << param.first << " = " << param.second << std::endl;
}
int main()
{
// 선언과 함께 값 추가
std::pair<int,std::string> p1{1, "one"};
// 값에 직접 접근 (first, second)
std::cout << p1.first << " = " << p1.second << std::endl; // 1 = one
// std::make_pair를 사용하여 값 추가
std::pair<int,std::string> p2{std::make_pair<int,std::string>(2, "two")};
// std::get을 사용하여 값에 접근
std::cout << std::get<0>(p2) << " = " << std::get<1>(p2) << std::endl; // 2 = two
// auto를 사용하여 값에 접근
auto& [num, str] = p1;
std::cout << num << " = " << str << std::endl; // 1 = one
// std::tie를 사용하여 값에 접근
// #include <tuple> 필요
int n{0};
std::string s{};
std::tie(n, s) = p2;
std::cout << n << " = " << s << std::endl; // 2 = two
// 벡터와 함께 사용
std::vector<Type> vPair;
vPair.emplace_back(p1);
vPair.emplace_back(p2);
vPair.emplace_back(std::make_pair<int,std::string>(3, "three"));
vPair.emplace_back(Type(4, "four"));
for (const Type& v : vPair) print(v);
// 값 수정
p1.first = 11;
p1.second = "eleven";
print(p1); // 11 = eleven
return 0;
}
반응형
'Programming Language > C++11' 카테고리의 다른 글
[c++11] std::tuple - 두 개 이상의 변수나 객체를 한번에 전달 (0) | 2024.07.02 |
---|---|
[c++11] Lambda Function (람다 함수) - 익명 함수 (10) | 2024.06.26 |
[c++11] std::function - 함수 포인터를 대체하는 키워드 (9) | 2024.06.25 |
[c++11] Smart Pointer (std::unique_ptr, std::shared_ptr) (21) | 2024.06.24 |
[c++11] std::atomic - 원자성을 보장해야 할 변수 정의 (26) | 2024.06.21 |