假设我有两个 std::vectors x 和 y 以及一个二元函数 F。我想创建一个新对象 z(不一定是向量),其属性是 z 的第 i 个元素将 F 应用于x 和 y 的第 i 个元素。暂时我用
boost::range::transform(x, y, z.begin(), F)
这当然需要为 z 分配内存。然而,我的目标是避免这种内存分配,并对转换进行惰性评估,类似于 boost::adaptors::transformed 对一元函数所做的事情。换句话说,z 的类型是某种 boost::range。有什么简单的方法可以做到这一点,还是我必须编写自己的范围类?提前致谢!