练习 10.24:
#include<iostream>
#include<vector>
#include<list>
#include<string>
#include<iterator>
#include<algorithm>
#include<functional>
using namespace std;
using namespace std::placeholders;
bool check_size(int n, string::size_type sz)
{
return n >= sz;
}
int main(int argc, char* argv[])
{
string s = "test";
string::size_type sz = s.size();
vector<int> v = { 2,3,5,6,8,9, };
auto val1 = find_if(v.begin(), v.end(), bind(check_size, _1, sz));
cout << *val1 << endl;
auto g = bind(check_size, _1, sz);
auto val2 = find_if(v.begin(), v.end(), g);
cout << *val2 << endl;
return 0;
}
练习 10.25:
#include<iostream>
#include<vector>
#include<list>
#include<string>
#include<iterator>
#include<algorithm>
#include<functional>
using namespace std;
using namespace std::placeholders;
bool check_size(const string& s, vector<string>::size_type sz) {
return s.size() >= sz;
}
int main(int argc, char* argv[])
{
vector<string> v = { "It","is","a","words","test", };
vector<string>::size_type sz = 2;
auto g = bind(check_size, _1, sz);
partition(v.begin(), v.end(), g);
for (auto s : v)
cout << s << " ";
return 0;
}