나는 최근에 std :: tuple을 사용하는 법을 배웠고 (나는 그 전에는 절대로 필요하지 않았다), 컨테이너 위에 사용할 때가 궁금했다? std :: get와 std :: make_tuple 같은 것이 필요하기 때문에 std :: tuple은 컨테이너처럼 느끼지 않기 때문에 묻습니다.std :: tuple을 올바르게 사용하고 있습니까?
2
A
답변
8
std::tuple
에는 다양한 유형의 요소가 고정되어 있습니다. 서로 다른 유형의 개체를 그룹화하려는 경우에 사용합니다. 그룹화에 특별히 유용한 의미가없는 경우이를 struct
이상으로 사용합니다. 예를 들어, std::tuple
은 함수가 여러 객체를 반환해야하는 경우에 유용합니다. 반면에 컨테이너에는 같은 유형의 여러 요소가 포함됩니다 (아마도 다양한 양).
8
구조체가 컨테이너보다 대체됩니다. 그러나 대부분의 경우 가독성을 이유로 구조체를 실제로 정의하는 것이 좋습니다. 튜플은 가변 개수의 인수가있는 템플릿에서 사용하는 것이 가장 좋습니다.
관련 문제
- 1. std :: tuple을 반복하는 방법은 무엇입니까?
- 2. 컴파일 시간에 알려진 N으로 std :: tuple을 반복하십시오.
- 3. 어떻게 가변 인수 std :: tuple을 템플릿 인수로 사용할 수 있습니까?
- 4. openmp로 C++ 11 std :: tuple을 반복 할 수 있습니까?
- 5. std :: tuple을 사용하여 C++ 템플릿 팩이 전달되는 이유가 있습니까?
- 6. ThreadPool.QueueUserWorkItem을 올바르게 사용하고 있습니까?
- 7. 목록을 올바르게 사용하고 있습니까?
- 8. 업데이트를 올바르게 사용하고 있습니까?
- 9. marionettejs를 올바르게 사용하고 있습니까?
- 10. 알람을 올바르게 사용하고 있습니까?
- 11. 캐시를 올바르게 사용하고 있습니까?
- 12. strpos를 올바르게 사용하고 있습니까?
- 13. FragmentPagerAdapter를 올바르게 사용하고 있습니까?
- 14. mysql_real_escape_string을 올바르게 사용하고 있습니까?
- 15. IEnumerable을 올바르게 사용하고 있습니까?
- 16. dynamic_cast를 올바르게 사용하고 있습니까?
- 17. OOP를 올바르게 사용하고 있습니까?
- 18. glVertexPointer를 올바르게 사용하고 있습니까?
- 19. 효율적으로 두배를 포함하는 std :: tuple을 평등하게 비교하는 방법
- 20. 유형 C++에서 std :: tuple을 포함하는 객체의 삭제 11
- 21. 키로 boost :: tuple을 사용하여지도 검색
- 22. .NET의 설정을 올바르게 사용하고 있습니까?
- 23. JSFiddle.net 이것을 올바르게 사용하고 있습니까?
- 24. PHP에서 CRYPT_BLOWFISH를 올바르게 사용하고 있습니까?
- 25. cin 개체를 올바르게 사용하고 있습니까?
- 26. sharethis API를 올바르게 사용하고 있습니까?
- 27. 푸리에 변환을 올바르게 사용하고 있습니까?
- 28. 이 거래를 올바르게 사용하고 있습니까?
- 29. ForkManager와 Perl을 올바르게 사용하고 있습니까?
- 30. Java PooledConnections를 올바르게 사용하고 있습니까?
값이 [쌍] (http://en.cppreference.com/w/cpp/utility/pair) 이상 필요할 경우 나는 추정합니다. 일종의 익명 구조로 ['std :: tuple'] (http://en.cppreference.com/w/cpp/utility/tuple)을 볼 수도 있습니다. –
네, 고마워요. 사실 std :: pair를 잊어 버렸습니다. 그래서 그것만을 변경해야합니다. – DTSCode
관련 항목 : 튜플 용으로 자주 사용되는 사례 중 하나 인 [std :: tie'를 사용하는 사전 비교 논리] (http : // en.cppreference.com/w/cpp/utility/tuple/tie). 특히 링크 된 문서의 예제를 유의하십시오. – WhozCraig