Предыдущий пост -
Следующий пост -

std::unary_negate.

Рубрика: functional, Дата: 12 July, 2013, Автор:
Tags: ,

Просто фигня эта изменяет одноаргументный функциональный объект, его условие на противоположное.

#include <iostream>
using std::cout;
using std::endl;
#include <algorithm>
using std::count_if;
#include <functional>
using std::unary_negate;

//функциональный объект предикат
struct obj
{
	//тут сделаем акцент, тут нужно добавлять const и не один, а как мы видим два const
	bool operator()(const int& x)const {return x%2==1;}
	typedef int argument_type;
}obj_f;

int main()
{
	int mass[]={1,2,3,4,5};

	unary_negate<obj> is_obj(obj_f);

	int co=count_if(mass,mass+5,is_obj);

	cout <<"co= "<<co<<endl;//2

	return 0;
}

[youtube]http://www.youtube.com/watch?v=BWsApJ1HJ-Y[/youtube]

rss