Problem C: 数组类(I)

来源:互联网 发布:python 安装xpath 编辑:程序博客网 时间:2024/06/05 17:32

Problem C: 数组类(I)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 2002  Solved: 1395
[Submit][Status][Web Board]

Description

封装一个整型数组类,用于存储整数和处理的相关功能,支持以下操作:
1. Array::Array()无参构造方法:创建一个空数组对象。
2. Array::size()方法:返回Array对象中元素个数。
3. Array::get(int n)方法:按格式从输入读取n元素。
4. 下标运算符:返回下标所指的元素。
-----------------------------------------------------------------------------
你设计一个数组类Array,使得main()函数能够正确运行。
函数调用格式见append.cc。
append.cc中已给出main()函数

Input

输入的第一个整数n,表示有n组测试数据。
后面的每行以一个整数k开头,表示后面有k个整数。

Output

把输入的数组,输出出来。每行数据对应一个输出。格式见sample。

Sample Input

42 10 201 003 1 2 3

Sample Output

10 2001 2 3

HINT

Append Code

append.cc,
本题有两种做法,第一种,运用vector容器可以轻松解决:
#include<iostream>#include<vector>using namespace std;class Array{private:    vector<int>q;public:    Array(){}    int size()    {        return q.size();    }    void get(int a)    {        q.clear();        int m;        for(int i=0;i<a;i++)        {            cin>>m;            q.push_back(m);        }    }    int operator [](int n)    {        return q[n];    }};int main(){    int cases;    Array arr;    cin >> cases;    for(int ca = 1; ca <= cases; ca++)    {        int len;        cin >> len;        arr.get(len);        for(int i = 0; i < arr.size(); i++)            if(i + 1 == arr.size())                cout << arr[i];            else                cout << arr[i] << " ";        cout << endl;    }}
第二种,普通方法,运用数组解决:
#include<iostream>#include<cstring>using namespace std;class Array{private:    int *a;    int _len;public:    Array(int len=0):_len(len){a=new int [_len];}    int size(){return _len;}    void get(int n)    {        _len=n;    for(int i=0;i<_len;i++)        cin>>a[i];    }    int operator[](int n)    {        return a[n];    }    ~Array(){delete []a;}};int main(){    int cases;    Array arr;    cin >> cases;    for(int ca = 1; ca <= cases; ca++)    {        int len;        cin >> len;        arr.get(len);        for(int i = 0; i < arr.size(); i++)            if(i + 1 == arr.size())                cout << arr[i];            else                cout << arr[i] << " ";        cout << endl;    }}



0 0
原创粉丝点击