我有任何不提供随机访问迭代器的容器,目标是创建一个接受输入这样的迭代器的适配器,并为容器提供随机访问迭代器接口。
我不确定如何使用boost::iterator_facade
因为它有点令人困惑: - /有一些关于堆栈溢出的例子,但我不知道如何使用它们(here)
任何链接/示例都可能有所帮助。 (我读了boost
中的例子,考虑到我在boost
答案 0 :(得分:1)
你不想这样做。
要么
Container Ranges
concept from his Ranges proposal 如果你真的坚持,是的,你可以实现你的想法,但除了隐藏运行时/存储成本之外,我不知道它会带来什么。特别是,保持生命周期的需要并不是微不足道的.¹
略有关联:Boost Spirit有一个boost::spirit::multi_pass
适配器,但只能从InputIterator
升级到ForwardIterator
(允许回溯)。
¹(当你有一个已经是随机访问范围的临时文件时你会怎么做?你不能保留对它的引用,但你也不应该不必要地复制它。)