std::pair にイテレータがないのはなぜですか? 質問する

std::pair にイテレータがないのはなぜですか? 質問する

なぜstd::pairイテレータがないのですか?

std::pairiteratorおよびconst_iteratorと をbegin()end()その 2 人のメンバーに対してのみ提供する必要があります。

vectorそうすれば、や のような反復可能オブジェクトを期待するテンプレート化された関数に渡すことができるので便利だと思いますset

これには何か欠点がありますか?

ベストアンサー1

理由の 1 つは、ペアの 2 つの要素が異なる型になる可能性があることです。これはイテレータ モデルに適合しません。

同じことがタプルにも当てはまり、反復子があるとさらに魅力的になるかもしれません。

安価なものが必要な場合は均質な固定長のコンテナの場合は、 を使用できますstd::array<T, n>

おすすめ記事