实现部分const迭代器

时间:2014-08-02 08:20:51

标签: c++ c++11 iterator stdlist const-iterator

我实现了一个模板类的哈希表,其中包含类型为K的键和C ++ 11中类型为V的值。该表的所有内容都存储在std::list <std::pair <K,V> >中。现在我想以这样的方式为此表实现iteratorconst_iterator,客户端可以通过iterator修改对的第二个元素并且无法& #39; t通过const_iterator修改对中的任何元素。

我的第一个想法就是使用std::list <std::pair <const K,V> >作为存储空间,并提供此列表的相应迭代器。问题是,当我声明此类std::listbegin()end()始终返回const_iterator时,以及当我尝试使用{{iterator将其转换为erase时3}}方法,它不起作用,因为libstdc ++中的iterator只接收const_iterator作为参数(它是libstdc ++的一个bug)。所以我无法将iterator投射到{{1}}。

如何实现这样的迭代器?

0 个答案:

没有答案