を異なる容器
コンテナを使用する場合、異なる容器からのiteratorを比較することの意味を理解することが不可欠です。疑問が生じます:別々の容器に属する反復器を比較することは許可されていますか?
std :: vector はfoo.begin()== bar.begin()bar.begin()evers false or falseまたはundefined行動につながりますか? セクション24.2.1は、2つの反復因子Iとjがj. に等しくなる場合、i operationsの有限シーケンスが存在する場合、到達可能であると見なされると述べています。 Containers Forwarditeratorsは、randomAccesiteratorsを含む24.2.5の対象となります。 Behavior。 1つの共通範囲のサブレンジではないR1とR2 [...]は、明示的に別の説明をしない限り、未定義です。」std::vector
は、明確な容器からの反復因子を未定義の動作であり、カスタムの反復者とコード内の容器を書くときにこの制約を遵守することが重要です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3