2014-07-14 3 views
2

나는 최근에 std :: tuple을 사용하는 법을 배웠고 (나는 그 전에는 절대로 필요하지 않았다), 컨테이너 위에 사용할 때가 궁금했다? std :: get와 std :: make_tuple 같은 것이 필요하기 때문에 std :: tuple은 컨테이너처럼 느끼지 않기 때문에 묻습니다.std :: tuple을 올바르게 사용하고 있습니까?

+0

값이 [쌍] (http://en.cppreference.com/w/cpp/utility/pair) 이상 필요할 경우 나는 추정합니다. 일종의 익명 구조로 ['std :: tuple'] (http://en.cppreference.com/w/cpp/utility/tuple)을 볼 수도 있습니다. –

+0

네, 고마워요. 사실 std :: pair를 잊어 버렸습니다. 그래서 그것만을 변경해야합니다. – DTSCode

+4

관련 항목 : 튜플 용으로 자주 사용되는 사례 중 하나 인 [std :: tie'를 사용하는 사전 비교 논리] (http : // en.cppreference.com/w/cpp/utility/tuple/tie). 특히 링크 된 문서의 예제를 유의하십시오. – WhozCraig

답변

8

std::tuple에는 다양한 유형의 요소가 고정되어 있습니다. 서로 다른 유형의 개체를 그룹화하려는 경우에 사용합니다. 그룹화에 특별히 유용한 의미가없는 경우이를 struct 이상으로 사용합니다. 예를 들어, std::tuple은 함수가 여러 객체를 반환해야하는 경우에 유용합니다. 반면에 컨테이너에는 같은 유형의 여러 요소가 포함됩니다 (아마도 다양한 양).

8

구조체가 컨테이너보다 대체됩니다. 그러나 대부분의 경우 가독성을 이유로 구조체를 실제로 정의하는 것이 좋습니다. 튜플은 가변 개수의 인수가있는 템플릿에서 사용하는 것이 가장 좋습니다.

관련 문제