为什么似乎没有人在 C++ 中使用元组,无论是Boost 元组库还是 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);
元组还使从函数返回多个变量变得更加容易,这可能比交换值更常见。使用返回值的引用当然不是很优雅。
我没有想到的元组有什么大的缺点吗?如果不是,为什么它们很少使用?他们慢吗?还是只是人们不习惯?使用元组是个好主意吗?