首页 > 解决方案 > 如何将迭代器指向向量中大于或等于目标数的元素

问题描述

例如,我有一个向量 v=[7,4,5,10,13]。这里我的目标数字是 6。我首先对向量进行排序:

sort(v.begin(), v.end());

现在我的输出将是 [4,5,7,10,13]。在此之后,我想打印大于或等于“6”的数字,这将使我输出为 [7,10,13]。

C++ 中执行此任务的便捷方法是什么?

标签: c++vector

解决方案


使用std::upper_bound

#include <algorithm>
#include <vector>
#include <iostream>

int main()
{
   std::vector<int> v = {7,4,5,10,13};
   std::sort(v.begin(), v.end());
   auto iter = std::upper_bound(v.begin(), v.end(), 6);
   for (; iter != v.end(); ++iter)
     std::cout << *iter << " ";
}

输出:

7 10 13

推荐阅读