Tuple 库如何适用于标准库?
标准库提供了一个 tuple 的特例,一个 2-tuple, 名为 std::pair
. 这个结构被用于标准库的容器,你可能在操作 std::map
的元素时已经留意到了。你也可以在容器类中存储 pair
。当然,std::pair
不仅是为了给容器类使用的,它还有它自己的用途,它附带有一个方便的函数 std::make_pair
, 可以自动地进行类型推断,还有一组操作符用于 pair
的比较。一个 tuple 的通常解决方案,而不仅仅是 2-tuples,会更加有用。Tuple 库所提供的还不是完全通用的,它最多可以允许10个元素的 tuple (如果需要更多的,看起来不常见但也不是没有可能的,这个限制可以放松)。还有,这些 tuples 的效率与使用 struct
的手工解决方案同样高!