对相邻元素进行操作的标准算法

Standard algorithm to operate on adjacent elements

std::adjacent_find 查找满足给定谓词的前两个连续元素。我正在寻找其他算法,这些算法也有一个采用(先前的,当前的)对的谓词。这对于渲染多边形、基于样本数据计算数值正交等非常有用

除了std::adjacent_find还有std::adjacent_difference,可以用来实现一维过滤,但是如果你只想要op(previous, current)的和就没有用了.

这些功能可以用 std::ranges 的某种观点来模拟吗?

这个没有特殊的功能,因为你可以直接调用二进制转换std::transform(c.begin(), std::prev(c.end()), std::next(c.begin()), op)。这适用于重叠范围 [c.begin(), c.end()-1][c.begin()+1, c.end()].

类似地,其他采用两个输入范围的操作可以在两个重叠范围上工作,只要它们不修改输入即可。

这也适用于大于 +/-1 的差异。应该注意的是,这不适用于输入迭代器——它们是一次性的。