왜 아무도 C ++, Boost Tuple Library 나 TR1 용 표준 라이브러리 에서 튜플을 사용하지 않는 것 같습니까? 나는 많은 C ++ 코드를 읽었고 튜플의 사용을 거의 보지 못했지만 튜플이 많은 문제를 해결할 수있는 곳을 자주 볼 수 있습니다 (보통 함수에서 여러 값을 반환).
튜플을 사용하면 다음과 같은 모든 종류의 멋진 작업을 수행 할 수 있습니다.
tie(a,b) = make_tuple(b,a); //swap a and b
이것은 확실히 이것보다 낫습니다.
temp=a;
a=b;
b=temp;
물론 항상 이렇게 할 수 있습니다.
swap(a,b);
하지만 세 개의 값을 회전하려면 어떻게해야합니까? 튜플을 사용하여이를 수행 할 수 있습니다.
tie(a,b,c) = make_tuple(b,c,a);
튜플을 사용하면 함수에서 여러 변수를 반환하는 것이 훨씬 쉬워지며, 이는 값을 바꾸는 것보다 훨씬 더 일반적인 경우입니다. 참조를 사용하여 값을 반환하는 것은 확실히 우아하지 않습니다.
내가 생각하지 않는 튜플에 큰 단점이 있습니까? 그렇지 않다면 왜 거의 사용되지 않습니까? 느린가요? 아니면 단지 사람들이 그들에게 익숙하지 않은 것일까 요? 튜플을 사용하는 것이 좋은 생각입니까?
a = a ^ b; b = a ^ b; a = a ^ b;