본문 바로가기

SW 지식/C 와 C++ 공부

[C++] std::pair와 std::tuple [TBD]

tuple의 사전적 정의

-tuple

접미사 앞에 숫자를 붙여 「한 벌의 것」의 뜻을 나타냄  e.g. a 3--tuple

...? 이해는 되지만, 다른 의미일 수도 있어서 찾아보았더니 Wikipedia에서 아래와 같은 정보를 찾았습니다.

In mathematics, a tuple is a finite ordered list (sequence) of elements. An n-tuple is a sequence (or ordered list) of n elements, where n is a non-negative integer. ...
In computer science, tuples come in many forms. Most typed functional programming languages implement tuples directly as product types, tightly associated with algebraic data types, pattern matching, and destructuring assignment.

튜플(tuple)은 셀 수 있는 수량의 순서 있는 열거이다. n 개의 요소를 가진 튜플을 n-튜플(n-tuple) 또는 n중쌍, n이라고 한다.
튜플은 보통 원소들을 괄호 '( )'안에 쉼표 ','로 구분되게 나열하여 표시한다. 5-튜플의 예를 들면 (2, 7, 4, 1, 7)와 같다. 때로는 대괄호 '[ ]'나 화살괄호 '< >'와 같은 다른 부호를 사용하기도 한다.
컴퓨터 과학에서 튜플은 어떤 요소의 집합, 혹은 테이블에서의 행을 가리킨다 단, 일반적인 집합과는 달리 중복이 허용될 수 있다.

출처 : https://en.wikipedia.org/wiki/Tuple

아하, 그 외에 다른 학문에서도 각기 사용되는 표현이라고 합니다.


아무튼,  std::tuple은, C++11부터 추가된 템플릿으로, std::pair의 확장판이라 볼 수 있습니다.

std::pair는 2개의 값을 쌍으로 저장하지만, std::tuple에는 제한이 없습니다!
(std::tuple을 사용하려면 기본적으로 <tuple> 헤더를 포함해야 합니다.)

 

참고 1)  std::pair - https://en.cppreference.com/w/cpp/utility/pair

참고 2) std::tuple - https://en.cppreference.com/w/cpp/utility/tuple