我有一个 vector ,其中包含按排序顺序排列的无符号整数。现在我想对 vector 应用二进制搜索,从 vector 的特定位置到它的末尾。
比如我的 vector 是:
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);
现在,我想对“vec”应用二进制搜索,从第 6 个位置开始到 vector 的大小,即我只想对 vector 进行二进制搜索:从 pos:6 到 pos:11。
我知道我可以将 std:lower_bound(vec.begin(),vec.end(),9) 应用于整个 vector ,但我无法理解如何将它应用于 vector 的一部分 vector 。我想在 vector vec 中找到“9”的位置。我将非常感谢对此的任何帮助
最佳答案
std:lower_bound(vec.begin() + 6,vec.end(), 9)
将从偏移量 6 到末尾的子 vector 中搜索。
关于c++ - 在 C++ 中搜索 vector 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35105313/