1

タイプ K のキーとタイプ V の値を持つハッシュ テーブルのテンプレート クラスを C++11 で実装しています。このテーブルのすべてのコンテンツは に保存されstd::list <std::pair <K,V> >ます。ここで、クライアントがペアスルーの2番目の要素のみを変更でき、ペアスルーの要素を変更できないように、このテーブルに対してiteratorandを実装したいと思います。const_iteratoriteratorconst_iterator

私の最初のアイデアはstd::list <std::pair <const K,V> >、ストレージとして使用し、このリストの適切な反復子を提供することでした。問題は、このタイプの を宣言し、std::list常にを返すときです。このメソッドを使用して変換しようとすると、機能しません。libstdc++ では引数としてのみ受け取るためです(libstdc++ のバグです)。だから私はにキャストすることはできません。begin()end()const_iteratoriteratoreraseiteratorconst_iteratoriterator

そのようなイテレータをどのように実装できますか?

4

0 に答える 0