使用boost范围转换适配器具有二进制功能
c++: use boost range transformed adaptor with binary function
假设我有两个std::向量x和y和一个二进制函数F,我想创建一个新的对象z(不一定是一个向量),其属性是z的第I个元素将是F对x和y的第I个元素的应用。
boost::range::transform(x, y, z.begin(), F)
当然需要为z分配内存。然而,我的目标是避免这种内存分配,并对转换进行惰性评估,类似于boost::adaptors:: transforms对一元函数所做的。换句话说,z的类型是某种boost::range。有什么简单的方法来做到这一点,或者我必须写我自己的范围类?提前感谢!
问题是Boost。Range没有提供可以压缩x
和y
的zip_range
作为transform
的输入。所以你需要自己写一个,例如使用make_iterator_range
和zip_iterator
(从Boost。迭代器库)。查看示例代码
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- MPI 二进制文件 I/O 基本功能和性能问题
- 编写二进制文件模板功能
- 两个派生类(十六进制 二进制)的虚拟功能
- 搜索非二进制树C 的功能
- 简单的二进制搜索树非递归添加功能
- 编译后如何计算某些二进制功能(或基本块)的校验和
- 二进制树级别明智的打印功能不起作用
- 二进制搜索功能不起作用
- 将功能写入二进制文件
- C 功能具有3个参数,可在通用二进制输入中读取
- 为什么我的功能(在二进制树上)打印出意外的结果
- 二进制树搜索功能
- 二进制树高功能
- 平衡二进制搜索树搜索功能
- 使用boost范围转换适配器具有二进制功能
- 二进制搜索树(搜索功能)
- 需要帮助调试简单的更新二进制文件的功能