在 c++ 中搜索向量的一部分

Searching a portion of vector in c++

本文关键字:一部分 向量 搜索 c++      更新时间:2023-10-16

我有一个向量,它包含按排序顺序排列的无符号整数。现在我想对向量应用二叉搜索,从向量的特定位置到它的末尾。

例如,我的向量是:

vector<unsigned> vec;
vec.push_back(1); vector.push_back(2), vector.push_back(3); 
vector.push_back(4); 
vector.push_back(5); vector.push_back(6); vector.push_back(7); vector.push_back(8); 
vector.push_back(9); vector.push_back(10); vector.push_back(11); vector.push_back(12);

现在,我想从第 6 个位置开始对"vec"应用二叉搜索到向量的大小,即我只想对向量进行二叉搜索:从 pos:6 到 pos:11。

我知道我可以在整个向量上应用 std:lower_bound(vec.begin(),vec.end(),9),但我无法理解如何在向量的一部分上应用它。 我想在矢量 vec 中找到"9"的位置。我将非常感谢对此的任何帮助

std:lower_bound(vec.begin() + 6,vec.end(), 9)

将在从偏移量 6 到末尾的子向量中搜索。