首页 > STL编程 > STL find_if浅析

STL find_if浅析

Returns the first iterator i in the range [first, last) such that pred(*i) is true. Returns last if no such iterator exists.

find_if用于查找区间内第一个满足指定函数的元素(函数返回值为true的时候),返回指向该元素的迭代器。如果没有找到,则返回end()迭代器。

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;

bool isPrime(int n)
{
	int m = sqrt(n);
	for(int i = 2; i <= m; ++i)
	{
		if(n % i == 0)
			return false;
	}
	return true;
}

int main()
{
	vector<int> coll;
	
	for(int i = 20; i <= 40; ++i)
	{
		coll.push_back(i);
	}
	
	vector<int>::iterator pos = find_if(coll.begin(), coll.end(), isPrime);
	if(pos != coll.end())
	{
		cout << "The first prime number is " << *pos << endl;
	}
	else
	{
		cout << "No prime numbers found!" << endl;
	}
	return 0;
}

觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> STL find_if浅析
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: STL编程 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.