//: C05:Binder2.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // More binders #include #include #include #include #include using namespace std; int main() { ostream_iterator out(cout, " "); vector v, r; v.push_back("Hi"); v.push_back("Hi"); v.push_back("Hey"); v.push_back("Hee"); v.push_back("Hi"); copy(v.begin(), v.end(), out); cout << endl; // Replace each "Hi" with "Ho": replace_copy_if(v.begin(), v.end(), back_inserter(r), bind2nd(equal_to(), "Hi"), "Ho"); copy(r.begin(), r.end(), out); cout << endl; // Replace anything that's not "Hi" with "Ho": replace_if(v.begin(), v.end(), not1(bind2nd(equal_to(),"Hi")),"Ho"); copy(v.begin(), v.end(), out); cout << endl; } ///:~