Transform/map 迭代器<A> 到迭代器<B>

Transform/map iterator<A> to iterator<B>

假设有一个函数采用 iterator<B> 并且我有一些(可迭代的)A 集合。

void external_function(iterator<B> bit);

此外,我还有一个函数可以将 As 转换为 Bs。

B transform(A& a) { ... };

我想要某种包装器迭代器,它遍历所有 As 并给出 Bs。

iterator<B> transform(iterator<A> ait, UnaryOperator transformer);

boost 中是否有一些函数可以做到这一点?还是必须自己写?

提升有boost::transform_iterator;我想这就是您要找的。