c++ - 在 C++ 中搜索 vector 的一部分

标签 c++ c++11 vector stl std

我有一个 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/

相关文章:

c++ - 如何在 Qt 的 Mac 应用程序包中 bundle dylib?

具有 2 个键的 C++ 映射,因此可以使用任何 1 个键来获取值

c++ - 是否可以在一个 visual studio c++ 项目中使用同名源文件?

c++ - 通过组合实现仿函数重载

c++ - 删除 vector 和双端队列中项目的时间复杂度

c++ - fstream 指针未指向

c++ - 冲突的不匹配标签与标准库一起编译,但不以其他方式编译

c++ - 对于可移动类型,按值传递比重载函数更好吗?

c++ - vector 多重定义链接错误

c++ - 如何根据索引的 `Eigen::VectorXd` 使用来自另一个 `Eigen::VectorXd` vector 的值初始化 `vector<int>`