使用lower / upper_bound()在向量中找到最近的值

时间:2019-01-05 22:37:27

标签: c++ vector binary-search lower-bound

我要完成的工作是遍历一个double值的向量,并返回最接近的double的向量位置。

当尝试使用NavMenu在向量中找到最接近的双精度值时,无论我尝试使用哪种双精度值,我都会收到值“ 0”或“ 144”(矢量的最后一个位置)搜索。

这是我尝试输入的代码

尝试1:

lower_bound()

尝试2:

double Convert::convertmVtoK(double value)
{
  std::vector<double>::iterator low,up;
  low=std::lower_bound (mV.begin(), mV.end(), value);           
  up= std::upper_bound (mV.begin(), mV.end(), value);                    

  std::cout << "lower_bound at position " << (low- mV.begin()) << '\n';
  std::cout << "upper_bound at position " << (up - mV.begin()) << '\n';
}

0 个答案:

没有答案