Advertisement
Guest User

ExerciesSupp2

a guest
Feb 1st, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. template<class T, class Pred, class F> void transformer_si(T debut, T fin, Pred pred, F f);
  6. int main()
  7. {
  8.    int vals[] = { -1, 2, 3, 4, 5, -6 }; // dans le désordre
  9.    transformer_si(begin(vals), end(vals),
  10.                         [](int n) { return n < 0; }, // remplacer chaque nombre négatif
  11.                         [](int n) { return -n; });   // ...par sa négation arithmétique
  12.    for(auto n : vals)
  13.       cout << n << ' '; // 1 2 3 4 5 6
  14.    cout << endl;
  15. }
  16.  
  17.  
  18. template<class T, class Pred, class F> void transformer_si(T debut, T fin, Pred pred, F f)
  19. {
  20.     for (debut = find_if(debut, fin, pred); debut != fin; debut = find_if(debut, fin, pred))
  21.     {
  22.         *debut = f(*debut);
  23.     }
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement