タイプ K のキーとタイプ V の値を持つハッシュ テーブルのテンプレート クラスを C++11 で実装しています。このテーブルのすべてのコンテンツは に保存されstd::list <std::pair <K,V> >
ます。ここで、クライアントがペアスルーの2番目の要素のみを変更でき、ペアスルーの要素を変更できないように、このテーブルに対してiterator
andを実装したいと思います。const_iterator
iterator
const_iterator
私の最初のアイデアはstd::list <std::pair <const K,V> >
、ストレージとして使用し、このリストの適切な反復子を提供することでした。問題は、このタイプの を宣言し、std::list
常にを返すときです。このメソッドを使用して変換しようとすると、機能しません。libstdc++ では引数としてのみ受け取るためです(libstdc++ のバグです)。だから私はにキャストすることはできません。begin()
end()
const_iterator
iterator
erase
iterator
const_iterator
iterator
そのようなイテレータをどのように実装できますか?