対応する非 constのような関数をconst_iterator
提供しないのはなぜですか?const_iterator::base()
iterator
reverse_iterator
次の擬似コードを検討してください(たとえば、幾何学的アルゴリズム):
std::container< point > universe;
auto it = std::cbegin(universe);
std::list< decltype(it) > interesting_subset = sieve(it, std::cend(universe));
auto structure = algorithm(interesting_subset);
universe
すべての入力ポイントはどこにありますか。のメンバーのサブセットに含む反復子をsieve()
-ing した後。以下は、 のメンバーへの参照 (反復子) で構成される から生成される を構築します。interesting_subset
universe
algorithm()
structure
interesting_subset
universe
最後に、point
結果に含まれる sを変更しstructure
ます (たとえば、シフトします)。しかし、同様に、アクション中の modyfining からそれらを保護したいので、 /の反対として/algorithm
を使用しました。最後に、 source への参照しかありません。std::cbegin
std::cend
std::begin
std::end
const_iterator
point
これは、iterator std::container< T >::const_iterator::base() const
STL コンテナーに含めたいメンバー関数の使用例です。