线性矢量搜索始终返回true

时间:2016-02-07 16:23:14

标签: c++ search linear

我目前正在编写一个线性搜索方法来搜索向量,但它会在向量中的每个项目上返回true。我需要它才能返回第一个找到的值的位置。

int linearSearch( const vector<int>& vec, int x)
{
   vector<int>::const_iterator t = find(vec.begin(), vec.end(), x);
   if (t != vec.end())
     return (t-vec.begin());

   else
     return -1;
}

1 个答案:

答案 0 :(得分:1)

我想你可能想在这个问题上使用std::distance,即

int linearSearch( const vector<int>& vec, int x)
{
    return std::distance(find(vec.begin(), vec.end(), x), veg.begin());
}

这样您就可以直接访问输入向量xvec的位置。如果x不在vec,则结果将等于vec.begin()vec.end()之间的距离。