.


:




:

































 

 

 

 


Bool operator() ( int_x ) const




: 8. .2

3.01 22 2016.

() 2013-2016, , .., ,

 

 

 

- for_each . , 2. , , 3, 4, 5, .. , , .

 

, . , - , . , count_if, .

 

, count_if :

 

//

if (up(* first))

++ result;

 

. ? , , . . , , , , . (callable entity).

 

, (functional object), (functor). , (). true, , , :

 

struct DividesOn

{

// -

DividesOn (int _divisor)

: m_divisor(_divisor) {}

 

//

bool operator() (int_x) const

{

// true,

return _x % m_divisor == 0;

}

 

//

const int m_divisor;

};

 

:

 

DividesOn dividesOn2(2);

DividesOn dividesOn3(3);

DividesOn dividesOn4(4);

 

, :

 

assert(dividesOn3(6));

assert(! dividesOn4(7));

 

, , 2, 3, 4:

 

int main ()

{

// : 0 1 2 3 4 5 6 7 8 9

std::vector< int > v;

for (int i = 0; i < 10; i++)

v.push_back(i);

 

// 2, 3, 4

DividesOn dividesOn2(2);

DividesOn dividesOn3(3);

DividesOn dividesOn4(4);

 

// count_if

std::cout

<< "Number of elements that divide on 2: "

<< std::count_if(v.begin(), v.end(), dividesOn2)

<< ", on 3: "

<< std::count_if(v.begin(), v.end(), dividesOn3)

<< ", on 4: "

<< std::count_if(v.begin(), v.end(), dividesOn4)

<< std::endl;

}

 

:

 

 

 





:


: 2017-01-21; !; : 397 |


:

:

.
==> ...

1697 - | 1485 -


© 2015-2024 lektsii.org - -

: 0.009 .