std::pair 는 하나의 변수에 두개의 데이터 타입을 저장할떄 사용한다. 

기본적인 형식은 아래와 같다.

 

std::pair<타입1, 타입2> 변수명{타입 1 값, 타입2 값};

 

하지만 변수 선언으로만 사용하기엔 뭔가 부족해 보인다. 그렇다면 어떤게 좋을까? 예전에 값을 리턴할때 두가지 형식을 한번에 리턴하면 좋겠다는 생각이 든 적이 있다. 

 

현재 함수가 올바르게 동작된지 확인가능한 boolean  과 함수의 결과값을 동시에 ..

 

다른 방식으로도 가능한 방법은 많다 하지만 그때는 이 방식이 있으면 좋지 않을까 생각했고 그방식을 std::pair로 구현할 수 있다.

 

//answer, Errorcode
std::pair<int, int> TestDivide(int a, int b)
{
	if(b == 0)
    		return std::make_pair<int, int>(a/ b, -1);
	return std::make_pair<int, int>(a / b, 0);
}

int main()
{
	auto pair_test = TestDivide(5, 2);
    
    
    //호출 형식
    std::cout << pair_test.first << std::endl;
    std::cout << pair_test.second << std::endl;
}

std::tuple은  std::pair와 비슷하지만 여러개의 인자를 설정할수 있고 변수로도 선언 할수 있고 그것을 리턴 받는 식으로 사용할수 있다. 

std::tuple<int, int, int> get_content()
{
	return std::make_tuple(0, 0, 1);
}

하지만 받는 형식은 여러가지가 있다.

 

int main(
	auto auto_tuple = get_content();

	std::cout << std::get<0>(auto_tuple) << std::endl;
	std::cout << std::get<1>(auto_tuple) << std::endl;
	std::cout << std::get<2>(auto_tuple) << std::endl;

	int nInt1, nInt2, nInt3;

	std::tie(nInt1, nInt2, nInt3) = get_content();

	//C++17
	auto [nNum1, nNum2, nNum3] = get_content();
   
   return 0;
    
  }

모든 방식이 되지만 개인적으로 실전에서 사용은 안해서 뭐가 좋을지는 아직 모르겠다.

'C++ > C++11' 카테고리의 다른 글

C++ 11 특징 ( R Value)  (0) 2021.03.09
C++11 특징 (Uniform 초기화)  (0) 2021.03.05
C++11 특징 (lambda)  (0) 2021.03.03
C++11 특징( ranged for loop)  (0) 2021.03.03
C++11 특징 (auto)  (0) 2021.03.02
:
BLOG main image
by 한그릇더

공지사항

카테고리

분류 전체보기 (30)
C++ (16)
C# (0)
시스템프로그램이 (2)
Android (0)
리눅스 (2)
Etc (8)
Meanstack (1)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

태그목록

글 보관함

달력

«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total :
Today : Yesterday :