Problem E: 可变长数组
Problem E: 可变长数组
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 472 Solved: 368
[Submit][Status][Web Board]
Description
定义一个类模板:
Input
输入为多行,
第一行M>0表示有M个测试用例。
每个测试用例占一行。开始是字母“i"(表示该行是整数数据)或"d"(表示该行是实数数据),一个空格后是一个正整数N>0,表示其后有N个数据,这N个数据 就是构成一个数组的所有元素。
Output
每行输入产生2行输出:第一行显示所有的元素,两两之间用一个空格隔开,但是首尾不能有空格。第二行显示这些元素的和。
Sample Input
i 5 10 20 30 40 50
d 4 1.1 2.1 3.1 4.1
Sample Output
150
1.1 2.1 3.1 4.1
10.40
#include <iostream>
#include <cstdio>
#include <string>
#include <iomanip>
#include <vector>
using namespace std;
template <typename T>
class DataVector
{
private:
vector<T> members;//表示该数组中的所有元素
public:
void show()
{
for(int i=0;i<members.size();i++)
{
if(i!=0)
cout<<" ";
cout<<members[i];
}
cout<<endl;
}//用于显示所有元素。
T getSum()
{
T sum=0;
for(int i=0;i<members.size();i++)
sum+=members[i];
return sum;
}//用于求所有元素的和。
void clearVector()
{members.clear();}//用以清除所有元素。
vector<T>& getVector()
{
return members;
}//用于返回members。
};
int main()
{
int cases, num, iData;
double dData;
DataVector<int> iVector;
DataVector<double> dVector;
char type;
cin>>cases;
for (int i = 0; i < cases; i++)
{
cin>>type;
switch(type)
{
case 'i':
iVector.clearVector();
cin>>num;
for (int j = 0; j < num; j++)
{
cin>>iData;
iVector.getVector().push_back(iData);
}
iVector.show();
cout<<iVector.getSum()<<endl;
break;
case 'd':
dVector.clearVector();
cin>>num;
for (int j = 0; j < num; j++)
{
cin>>dData;
dVector.getVector().push_back(dData);
}
dVector.show();
cout<<setprecision(2)<<fixed<<dVector.getSum()<<endl;
}
}
return 0;
}
Problem E: 可变长数组的更多相关文章
- 第九章 C99可变长数组VLA详解
C90及C++的数组对象定义是静态联编的,在编译期就必须给定对象的完整信息.但在程序设计过程中,我们常常遇到需要根据上下文环境来定义数组的情况,在运行期才能确知数组的长度.对于这种情况,C90及C++ ...
- 数据结构和算法(Golang实现)(13)常见数据结构-可变长数组
可变长数组 因为数组大小是固定的,当数据元素特别多时,固定的数组无法储存这么多的值,所以可变长数组出现了,这也是一种数据结构.在Golang语言中,可变长数组被内置在语言里面:切片slice. sli ...
- Java中定义不了可变长数组怎么办---集合 泛型
一.集合(Collections) Java使用集合来组织和管理对象. 1.Java的集合类 集合类主要负责保存.盛装和管理对象,因此集合类也被称为容器类. 集合类分为Set.List.Map和Que ...
- UVa101 The Blocks Problem(不定长数组vector)
The Blocks Problem 书上的一道例题,代码思路比较清晰,可以看懂. 相关知识: 若a是一个vector,则: a.size():读取它的大小 a.resize():改变大小 a.pus ...
- C++ 手把手教你实现可变长的数组
01 实现自定义的可变长数组类型 假设我们要实现一个会自动扩展的数组,要实现什么函数呢?先从下面的main函数给出的实现,看看有什么函数是需要我们实现的. int main() { MyArray a ...
- Java 数组 可变长参数 实例
可以把类型相同但个数可变的参数传递给方法,方法中的参数声明如下: typeName...parameterName (类型名...参数名) 在方法声明中,指定类型后紧跟着省略号...,只能给方法指定一 ...
- Java中的可变长参数
可变长参数的定义 与一般方法没多大差别,只不过形参多了...(三个点) 方法名(数据类型 ... 变量名){} 小案例: public class ParamDemo { public static ...
- GCC 中零长数组与变长数组
前两天看程序,发现在某个函数中有下面这段程序: int n; //define a variable n int array[n]; //define an array with length n 在 ...
- javascript arguments解释,实现可变长参数。
在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一.可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西. 先来看看应用场景,使用 ...
随机推荐
- 记一次Linux下JavaWeb环境的搭建
今天重装了腾讯云VPS的系统,那么几乎所有运行环境都要重新部署了.过程不难懂,但是也比较繁琐,这次就写下来,方便他人也方便自己日后参考参考. 我采用的是JDK+Tomcat的形式来进行JavaWeb初 ...
- Easy sssp
Easy sssp 时间限制: 1 Sec 内存限制: 128 MB提交: 103 解决: 20[提交][状态][讨论版] 题目描述 输入数据给出一个有N(2 < = N < = ...
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)
题目链接:http://codeforces.com/problemset/problem/847/I I. Noise Level time limit per test 5 seconds mem ...
- Theano学习-梯度计算
1. 计算梯度 创建一个函数 \(y\) ,并且计算关于其参数 \(x\) 的微分. 为了实现这一功能,将使用函数 \(T.grad\) . 例如:计算 \(x^2\) 关于参数 \(x\) 的梯度. ...
- zoj3710 friends(floyd变形)
Friends Time Limit: 2 Seconds Memory Limit: 65536 KB Alice lives in the country where people li ...
- sql 时间格式
在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...
- AmCharts 对数据排序后展示
在官网看到的例子 给chart添加一个排序功能的handler AmCharts.addInitHandler( function(chart){ if (chart.orderByField === ...
- (转)JVM类生命周期概述:加载时机与加载过程
原文地址: http://blog.csdn.net/justloveyou_/article/details/72466105 JVM类加载机制主要包括两个问题:类加载的时机与步骤 和 类加载的方式 ...
- [Python]Codecombat攻略之地牢Kithgard(1-22关)
首页:https://cn.codecombat.com/play语言:Python 第一界面:地牢 Kithgard(22关) 时间:1-3小时 内容:语法.方法.参数.字符串.循环.变量等 网页: ...
- servlet 相应头重定向
package demoservllet; import java.io.IOException;import javax.servlet.ServletException;import javax. ...