为什么std :: pair没有迭代器?

Fra*_*ank 15 c++ stl std-pair

为什么没有std::pair迭代器?

std::pair应提供iteratorconst_iterator以及begin()end()-只为他们的两个成员.

我认为它会很有用,因为我们可以将它们传递给期望迭代的模板化函数,比如vectorset.

这有什么缺点吗?

NPE*_*NPE 23

一个原因是一对中的两个元素可以是不同类型的.这不适合迭代器模型.

元组也是如此,其中迭代器可能更具吸引力.

如果您需要一个固定长度的便宜的均质容器,您可以使用std::array<T, n>.