C++ Primer 练习10.3.4

练习 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;
}

猜你喜欢

转载自blog.csdn.net/Dzx1025/article/details/107068333