C++/STL Algorithms Helper/negate

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Negate contents of a list with transform() and negate()

<source lang="cpp">

  1. include <iostream>
  2. include <list>
  3. include <functional>
  4. include <algorithm>

using namespace std;

int main() {

 list<double> l;
 int i;
  
 for(i=1; i<10; i++) l.push_back((double)i);
  
 list<double>::iterator p = l.begin();
 while(p != l.end()) {
   cout << *p << " ";
   p++;
 }
 cout << endl;
  
 p = transform(l.begin(), l.end(),l.begin(),negate<double>());
  
 cout << "Negated contents of the list:\n";
 p = l.begin();
 while(p != l.end()) {
   cout << *p << " ";
   p++;
 }
  
 return 0;

}


 </source>


negate for list

<source lang="cpp">

  1. include <iostream>
  2. include <list>
  3. include <functional>
  4. include <algorithm>

using namespace std; int main() {

 list<double> vals;
 for(int i=1; i<10; i++) 
     vals.push_back((double)i);
 cout << "Original contents of vals:\n";
 list<double>::iterator p = vals.begin();
 while(p != vals.end()) {
   cout << *p << " ";
   p++;
 }
 cout << endl;

 // use the negate function object
 p = transform(vals.begin(), vals.end(),
               vals.begin(),
               negate<double>()); // call function object
 cout << "Negated contents of vals:\n";
 p = vals.begin();
 while(p != vals.end()) {
   cout << *p << " ";
   p++;
 }
 return 0;

}

/* 

Original contents of vals: 1 2 3 4 5 6 7 8 9 Negated contents of vals: -1 -2 -3 -4 -5 -6 -7 -8 -9

*/       
   
 </source>


negate the contents of result

<source lang="cpp">

  1. include <iostream>
  2. include <vector>
  3. include <algorithm>
  4. include <functional>

using namespace std; int main() {

 vector<int> v, v2, result(10);
 for(unsigned i=0; i < 10; ++i) v.push_back(i);
 for(unsigned i=0; i < 10; ++i) v2.push_back(i);
 transform(v.begin(), v.end(), v.begin(), negate<int>());
 return 0;

}


 </source>