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有这个东西. 先来看看应用场景,使用 ...
随机推荐
- MySQL数据备份之mysqldump使用(转)
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- Java连接数据库完整代码 查找和插入
package test; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; ...
- 屏蔽掉Google Chrome 浏览器 textarea 单词拼写检测
可以使用html5的spellcheck属性来关闭对元素内容进行拼写检查. <!-以下两种书写方法正确--> <textarea spellcheck="true" ...
- SQLServer中重建聚集索引之后会影响到非聚集索引的索引碎片吗
本文出处:http://www.cnblogs.com/wy123/p/7650215.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- clone github报Permission denied (publickey) 解决方案
问题描述 问题产生的原因,不是很清楚,就不管了.在执行git clone git@github.com:****.git 的时候报了Permission denied (publickey). War ...
- C-图文上边对齐
1.效果 1.1 样式设置 2 效果 2.1 样式
- C#中的原子操作Interlocked,你真的了解吗?
阅读目录 背景 代码描述 越分析越黑暗 结语 一.背景 这个标题起的有点标题党的嫌疑[捂脸],这个事情的原委是这样的,有个Web API的站点在本地使用Release模式Run的时候出现问题,但是使用 ...
- 学习的Python教程中的一些问题
2017开始学习Python,在网上找了很多教程,最后看到了Vamei的教程,感觉很简单易懂,但是过程中难免有不太容易理解的问题,做一些随笔,加深记忆亦可让以后学习的同学少走一些弯路. 1 Pytho ...
- tomcat 内存大小配置
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机.JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会 ...
- C#钩子类 几乎捕获键盘鼠标所有事件
using System; using System.Text; using System.Runtime.InteropServices; using System.Reflection; usin ...