C++ Primer Plus第8章 习题7

#include <iostream>

template<typename T>
void ShowArray(T arr[], int n);

template<typename T>
void ShowArray(T* arr[], int n);

template<typename T>
T SumArray(T arr[], int n);

template<typename T>
T SumArray(T* arr[], int n);

struct debts
{
	char name[50];
	double amount;
};


int main()
{

	int things[] { 13,31,103,301,310,130 };
	struct debts mr_E[3] = {
		{"Ima Wolfe", 2400.00},
		{"Ura Foxe", 1300.00},
		{"Iby Stout", 1800.00}
	};

	double* pd[3];
	for (size_t i{}; i != 3; ++i)
	{
		pd[i] = &(mr_E[i].amount);
	}

	std::cout << "things的元素为:" << std::endl;
	ShowArray(things, 6);

	std::cout << "结构体mr_E中的debts为:" << std::endl;
	ShowArray(pd, 3);

	std::cout << "things的总和为:" << SumArray(things, 6) << std::endl;
	std::cout << "pd的总和为:" << SumArray(pd, 3) << std::endl;

	return 0;
}

template<typename T>
void ShowArray(T arr[], int n)
{
	std::cout << "模板 A" << std::endl;
	for (size_t i{}; i != n; ++i)
	{
		std::cout << arr[i] << ' ';
	}

	std::cout << std::endl;
}

template<typename T>
void ShowArray(T* arr[], int n)
{
	std::cout << "模板 B" << std::endl;
	for (size_t i{}; i != n; ++i)
	{
		std::cout << *arr[i] << ' ';
	}

	std::cout << std::endl;
}

template<typename T>
T SumArray(T arr[], int n)
{
	T sum{};
	for (size_t i{}; i != n; ++i)
	{
		sum += arr[i];
	}

	return sum;
}

template<typename T>
T SumArray(T* arr[], int n)
{
	T sum = *arr[0] - *arr[0];		// 此处技巧需要注意
	for (size_t i{}; i != n; ++i)
	{
		sum += *arr[i];
	}

	return sum;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值