我正在读取图像文件并存储每个点的位置。然后我将这些点组合在一起以找到直线、水平线和斜坡线。然后,对于这些段中的每一个,我添加诸如 x 和 y 轴的开始和结束、其高度、宽度等特征。在我以前的版本中,我创建了一个多维向量来实现上述功能。然后我使用 find_if 来查找附近的段。
我以前的实现:
newSequence = find_if( points.begin(), points.end(), [&](vector<int>&v1) -> bool
{
return
v1[0] >= index_a1 &&
v1[0] <= index_a2 &&
v1[1] >= index_b1 &&
v1[1] <= index_b2 &&
v1[4] != index_a4 &&
v1[8] == index_a8;
});
它有效,但现在我想提高它的性能并正在研究 binary_search 和 lower_bound 但它会引发错误。
vector <vector<int>>::iterator newSequence;
vector <vector<int>> points;
newSequence = lower_bound( points.begin(), points.end(),[](vector<int>&v1)->bool{
return v1[0] = 1;
});
我还想知道是否有更好的存储和搜索这种超过 4 列的数据的方法。