比较 c++ std::vector 的元素彼此之间
Comparing a c++ std::vector's elements with each other
我有一个双值的std::向量。现在,我需要知道两个后续元素是否在一定距离内,以便处理它们我之前已经用std::sort
对向量进行了排序
我想了一个解决方案,用std::find_if
和lambda表达式(c++11)来确定这些元素,如下所示:
std::vector<std::vector<double>::iterator> foundElements;
std::vector<double>::iterator foundElement;
while (foundElement != gradients.end())
{
foundElement = std::find_if(gradients.begin(), gradients.end(),
[] (double grad)->bool{
return ...
});
foundElements.push_back(foundElement);
}
但是谓词实际应该返回什么呢?计划是我使用迭代器的向量来稍后修改向量
我采用这种方法是正确的,还是过于复杂/不可能?其他可能更实用的解决方案是什么?
编辑:我想我会追求std::adjacent_find
函数,正如一位回答者所建议的那样。
了解std::adjacent_find
。
你能提高问题的语法吗?
"我有一个具有不同双值的std::向量。现在我需要知道两个连续的向量(我之前用std::sort对向量进行了排序)是否在一定的距离内才能处理它们)。"
你是否暗示double类型向量的每个元素都是唯一的值?如果是这样的话,是否可以合理地推断出你的目标是找到这些元素之间的距离?
相关文章:
- 为什么 2 个相同数组的元素彼此相等
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 比较它们之间的元素并获取公共值的键
- 查找多个向量之间的公共元素(无整数元素)
- 查找彼此之间具有不同最小距离的随机数
- 常量映射和常量元素映射之间的区别
- 如何通过比较彼此的成员从QStringList中删除元素
- r-在Rcpp和C++之间转换矢量(使用Rcpp::as或Rcpp:::wrap)是否会创建一个新的矢量并复制元素
- 使用折叠表达式打印每个元素之间的空格
- 如何计算大小为 1000 x 1000 的 2D 数组中 2 个元素之间的步幅?C++
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 在查找子集中元素和元素数量之间的二进制比较背后的逻辑是什么?
- 使用动态创建的选项卡元素在C 和QML之间绑定
- C++11 在列表到映射(或其他容器)之间移动元素
- 复制n char*彼此之间
- 相邻数组元素地址之间的差异
- PHP和C++可以在彼此之间传递数据吗
- 比较 c++ std::vector 的元素彼此之间
- 同步两个线程,在彼此之间传递事件
- 不同的C/ c++模块在编译和链接时彼此之间有什么通信?