假设我有两个迭代器,它们跨越整个类似 stl 的容器或其连续部分,从而定义了一个范围。这对迭代器将是不可变的。然后我想要第三个可变迭代器,它将指向范围内的任何元素。这导致我有一个适配器,例如(元代码):
Adaptor<Iterator>:
==================
+ Iterator: begin
+ Iterator: end
+ Iterator: current
if current==begin
thenstd::prev(adaptor)
不变但current
仍等于begin
if current==end
thenstd::next(adaptor)
不变current
且仍等于end
我试图在 STL 和 Boost 中找到现成的解决方案,但到目前为止(可能是我的词汇/行话限制)我找不到任何解决方案。我应该自己从头开始实现这样的适配器,还是我错过了一些 stl/boost 好东西?谢谢。