STL 内の実装に関して、これら 2 つの違いは何ですか。パフォーマンスに関しての違いは何ですか? 「読み取り専用」でベクトルをトラバースする場合は、 が好ましいと思いますconst_iterator
。
ありがとう。
ベストアンサー1
パフォーマンスの違いはありません。
Aはconst_iterator
定数値を指すイテレータ(const T*
ポインタのような)であり、これを逆参照すると定数値(const T&
)への参照が返され、参照された値の変更が防止されます。const
-正確さ。
コンテナーへの const 参照がある場合、 のみを取得できますconst_iterator
。
編集済み:私は「const_iterator
定数ポインターを返します」と述べましたが、これは正確ではありません。指摘してくれた Brandon に感謝します。
編集:COW オブジェクトの場合、非 const イテレータを取得する (またはそれを逆参照する) と、コピーがトリガーされる可能性があります。( std::string
COW を使用する一部の旧式で現在は許可されていない実装)。