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