3
我正在写两个函数,第一个函数执行线性搜索,如果它在矢量中,它应该返回第一个找到的值的位置。第二种方法是使用equal_range完成的二进制搜索,它应该返回与线性搜索相同的内容。目前他们正在检查每个值作为匹配。任何帮助表示赞赏。使用迭代器位置的线性和二进制搜索
int linearSearch(const vector<int>& vec, int z)
{
vector<int>::iterator iter = find(vec.begin(), vec.end(), z);
if (iter != vec.end())
return (iter-vec.begin());
else
return -1;
}
int binarySearch(const vector<int>& vec, int z)
{
pair<vector<int>::const_iterator, vector<int>::const_iterator> bounds;
bounds = equal_range(vec.begin(),vec.end(), z);
if (bounds.first != vec.end())
return (bounds.first -vec.begin());
else
return -1;
}
对不起,应该是vec.begin,我编辑它 – GrapeSoda3
我需要这个代码来输出在向量中找到的值的位置 – GrapeSoda3