「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C ++のさまざまな容器のイテレーターを比較することは有効ですか?

C ++のさまざまな容器のイテレーターを比較することは有効ですか?

2025-03-25に投稿されました
ブラウズ:819

Is It Valid to Compare Iterators from Different Containers in C  ?

を異なる容器

コンテナを使用する場合、異なる容器からのiteratorを比較することの意味を理解することが不可欠です。疑問が生じます:別々の容器に属する反復器を比較することは許可されていますか? std :: vector bar; std :: cout

はfoo.begin()== bar.begin()bar.begin()evers false or falseまたはundefined行動につながりますか?

std::vector foo;
std::vector bar;
std::cout  

セクション24.2.1は、2つの反復因子Iとjがj.

に等しくなる場合、i operationsの有限シーケンスが存在する場合、到達可能であると見なされると述べています。 Containers

Forwarditeratorsは、randomAccesiteratorsを含む24.2.5の対象となります。 Behavior。 1つの共通範囲のサブレンジではないR1とR2 [...]は、明示的に別の説明をしない限り、未定義です。」

    は、明確な容器からの反復因子を未定義の動作であり、カスタムの反復者とコード内の容器を書くときにこの制約を遵守することが重要です。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3