如何在矢量容器的给定间隔中搜索

时间:2011-12-26 08:20:37

标签: c++ vector find

圣诞快乐,新年快乐!

我想在向量容器的给定间隔(不是整个向量)中搜索,以查看是否存在用户指定的整数。但我无法使其发挥作用。你能给我一些帮助吗?非常感谢你。

#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;
}

1 个答案:

答案 0 :(得分:0)

您可以直接替换

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

通过

if (it != itUpper) ...

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