なぜ非定数find()
があるのstd::unordered_set()
ですか?
iterator find( const Key& key );
const_iterator find( const Key& key ) const;
iterator
と同じですがconst_iterator
、なぜ非constバージョンのfind()
?
http://en.cppreference.com/w/cpp/container/unordered_set/find
iteratorはconst_iteratorと同じですが、find()の非constバージョンがあるのはなぜですか?
ドキュメントに記載されているように、イテレータはconst_iteratorと同じように必須ではないため:
メンバータイプiteratorとconst_iteratorは、同じタイプのエイリアスである可能性があります。イテレータはconst_iteratorに変換可能であるため、単一定義規則の違反を回避するために、関数パラメータリストでconst_iteratorを使用する必要があります。
強調は私のものです。それらは必須ではないため、一部のジェネリックコードは、によって返される特定のタイプのイテレータに依存するfind()
可能性があり、他のコンテナと一貫している必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加