如何在向量容器的给定间隔内搜索

How to search in a given interval of a vector container

本文关键字:搜索 向量      更新时间:2023-10-16

我想在向量容器的给定间隔(不是整个向量(内搜索,以查看是否存在用户指定的整数。但我无法让它工作。谢谢。

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main () 
{
int myints[] = { 10, 20, 30 ,40 };
vector<int> myvector (myints,myints+4);
vector<int>::iterator it, itLower, itUpper;
itLower = myvector.begin();
itUpper = myvector.begin();
advance(itLower, 1);
advance(itUpper, 2);
// iterator to vector element:
it = find (itLower, itUpper, 50);
if (it != myvector.end())
{  
   // Found
   cout << "Found it";
}
else
{ 
   // Not fount
   cout << "Not found it";
}
return 0;
}

你可以只替换这行

if (it != myvector.end()) ...

if (it != itUpper) ...

如果find找不到该项,则返回最后一个元素(在您的情况下,这是范围的末尾,而不是完整向量的末尾(。请注意,范围是用itUpper独占定义的。