STL - count e count_if

Dal quinto capitolo di Designing Components with the C++ STL, di Ulrich Breymann. Algoritmi standard.

Sezione dedicata agli algoritmi che non modificano le sequenze su cui operano.

5.3.6: count e count_if

Algoritmi per il conteggio degli elementi uguali a uno specificato valore o che soddisfano un dato predicato.

Vediamo count() e count_if() in azione in questo esempio:

#include<iostream>
#include<algorithm>
#include <vector>

using namespace std;

class ComparModule {
public:

ComparModule(int i) : module(i) {
}

bool operator()(int x) {
return (x % module == 0);
}
private:
int module;
};

bool isOdd(int i) { return (i%2) != 0; }

int main() {
std::vector<int> v;

for (int i = 1; i < 101; ++i)
v.push_back(i);

cout << "Elements with value 99: " << count(v.begin(), v.end(), 99)
<< endl;

cout << "Elements module 40: " << count_if(v.begin(), v.end(), ComparModule(40))
<< endl;

cout << "Odd elements: " << count_if(v.begin(), v.end(), isOdd)
<< endl;
}

Nessun commento:

Posta un commento