为什么似乎没有人在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);
元组还使得从一个函数返回多个变量变得更容易,这可能是比交换值更常见的情况。使用引用来返回值肯定不是很优雅。
元组有没有什么我没想到的大缺点?如果不是,为什么很少使用它们?他们速度慢吗?或者仅仅是人们不习惯它们?使用元组是个好主意吗?
https://stackoverflow.com/questions/855110
复制相似问题