使用STL中的array模板类

本文介绍了一个使用C++编程语言实现的功能,该功能接收四个季节的支出数据,并通过数组模板类对象进行存储。文章详细阐述了如何通过函数填充数组并展示各个季节的支出情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求是输入四个季节的支出并显示支出,所有的数据都用 array 模板类对象来存储

代码如下:

//array.cpp --  functions with array objects

#include <iostream>
#include <array>
#include <string>

//constant data 
const int Seasons = 4;
const std::array<std::string, Seasons> Snames = 
{"Spring", "Summer", "Fall", "Winter"};

void fill ( std::array<double, Seasons> * pa);
void show ( std::array<double, Seasons> da );

int main()
{
 std::array< double, Seasons> obj;
 fill( &obj );
 show( obj );
 std::cin.get();
 std::cin.get();
 return 0;

}
void fill ( std::array<double, Seasons> * pa)
{
	using namespace std;
	for (int i = 0; i < Seasons; i++)
	{
		cout << "Enter " << Snames[i] << " expenses: ";
		cin >> (*pa)[i]; // 这个写法有点不理解,不能写成 cin >> pa[i] 或者 cin >> *(pa + i)吗?
		//cin >> *( pa + i); 错误,为什么错?
	}

}
void show ( std::array<double, Seasons> da )
{
	using namespace std;
	double total = 0.0;
	cout << "\nEXPENSES\n";
	for (int i = 0; i < Seasons; i++)
	{
		cout << Snames[i] << " expenses is: " << da[i] << endl;
		total += da[i];
	}
	cout << "Total expenses is: " << total << endl;

}

运行效果如图:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值