C++PrimerPlus(第6版)中文版:Chapter16.5.3自适应函数符和函数适配器

很遗憾,我没有读的太懂这个章节,在书中是P576页面。程序我附在下面,说老实话看到这里,我已经有点蒙圈了,真的。还需要后续的继续研究了。

// funadap.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <functional>

void Show(double);
const int LIM = 6;


int main()
{
   // std::cout << "Hello World!\n";

	using namespace std;
	double arr1[LIM] = {28,29,30,35,38,59};
	double arr2[LIM] = {63,65,69,75,80,99};
	vector<double> gr8(arr1,arr1+LIM);
	vector<double> m8(arr2, arr2 + LIM);
	cout.setf(ios_base::fixed);
	cout.precision(1);
	cout << "gr8:\t";
	for_each(gr8.begin(),gr8.end(),Show);
	cout << endl;

	cout << "m8:\t";
	for_each(m8.begin(), m8.end(), Show);
	cout << endl;
	/below is important//
	vector<double> sum(LIM);
	transform(gr8.begin(),gr8.end(),m8.begin(),sum.begin(),plus<double>());
	cout << "sum:\t";
	for_each(sum.begin(), sum.end(), Show);
	cout << endl;

	vector<double> prod(LIM);
	transform(gr8.begin(), gr8.end(),prod.begin(), bind1st(multiplies<double>(),2.5));
	cout << "prod:\t";
	for_each(prod.begin(), prod.end(), Show);
	cout << endl;



	return 0;

}
void Show(double v)
{
	std::cout.width(6);
	std::cout << v << ' ';
}


运行结果:

gr8:      28.0   29.0   30.0   35.0   38.0   59.0
m8:       63.0   65.0   69.0   75.0   80.0   99.0
sum:      91.0   94.0   99.0  110.0  118.0  158.0
prod:     70.0   72.5   75.0   87.5   95.0  147.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值