//: C05:Compose2.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Using the SGI STL compose2() function #include "copy_if.h" #include #include #include #include #include #include using namespace std; int main() { srand(time(0)); vector v(100); generate(v.begin(), v.end(), rand); transform(v.begin(), v.end(), v.begin(), bind2nd(divides(), RAND_MAX/100)); vector r; copy_if(v.begin(), v.end(), back_inserter(r), compose2(logical_and(), bind2nd(greater_equal(), 30), bind2nd(less_equal(), 40))); sort(r.begin(), r.end()); copy(r.begin(), r.end(), ostream_iterator(cout, " ")); cout << endl; } ///:~