C++ Primer第十章练习题

10.23 bind函数的使用
bool isLesser(const string &s, string::size_type sz)
{
	return s.size() < sz;
}

int main()
{
	vector<string> authors{ "Mooophy", "pezy", "Queequeg90", "shbling", "evan617" };
	cout << count_if(authors.begin(), authors.end(), bind(isLesser, _1, 5));
	return 0;
}

10.30 istream_iterator的使用
int main()
{	
	vector<int> v;
	istream_iterator<int> int_it(cin), int_eof;
	copy(int_it, int_eof, back_inserter(v));
	sort(v.begin(), v.end());
	copy(v.begin(), v.end(), ostream_iterator<int>(cout," "));
	return 0;
}
10.33 编写程序,接受三个参数:一个输入文件和两个输出文件的文件名。输入文件保存的应该是整数。使用 istream_iterator 读取输入文件。使用 ostream_iterator 将奇数写入第一个输入文件,每个值后面都跟一个空格。将偶数写入第二个输出文件,每个值都独占一行。
int main()
{	
	ifstream ifs("D:\\SourceCode\\VSCode\\C++\\test1.txt");

	ofstream ofs_odd("D:\\SourceCode\\VSCode\\C++\\test2.txt");
	ofstream ofs_even("D:\\SourceCode\\VSCode\\C++\\test3.txt");

	istream_iterator<int> in(ifs), in_eof;
	ostream_iterator<int> out_odd(ofs_odd, " "), out_even(ofs_even, "\n");

	for_each(in, in_eof, [&out_odd, &out_even](const int i) {
		*(i & 1 ? out_odd : out_even)++ = i;
	});
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值