设定义一个类 整型数组的大小,表示可放元素的个数整型数组当前的元素个数,初始应为0,当elem等于size时,数组满
2017-04-20 20:37
302 查看
设定义一个类:
class ListArray
{
private:
int size; //整型数组的大小,表示可放元素的个数
int elem; //整型数组当前的元素个数,初始应为0,当elem等于size时,数组满
int *p; //指向整型数组,动态分配内存空间
public:
ListArray(int s=100); //用s初始化整型数组的大小
void put(int n); //将n加入整型数组,elem自增1
void print(); //输出整型数组所有元素
~ListArray();
};
请完成该类成员函数的定义和测试程序的设计。
【提示】编写void put(int n)函数时,注意考虑数组满的情况。如果数组已满,则没有空间存储n,
此时需动态申请新的内存空间,其大小应比原数组大小大1,并将原数组元素备份到新数组,新数
组的最后一个元素存放n,当然不要忘记释放为原数组动态分配的内存空间。
class ListArray
{
private:
int size; //整型数组的大小,表示可放元素的个数
int elem; //整型数组当前的元素个数,初始应为0,当elem等于size时,数组满
int *p; //指向整型数组,动态分配内存空间
public:
ListArray(int s=100); //用s初始化整型数组的大小
void put(int n); //将n加入整型数组,elem自增1
void print(); //输出整型数组所有元素
~ListArray();
};
请完成该类成员函数的定义和测试程序的设计。
【提示】编写void put(int n)函数时,注意考虑数组满的情况。如果数组已满,则没有空间存储n,
此时需动态申请新的内存空间,其大小应比原数组大小大1,并将原数组元素备份到新数组,新数
组的最后一个元素存放n,当然不要忘记释放为原数组动态分配的内存空间。
// class7.cpp : 定义控制台应用程序的入口点。 // /*设定义一个类: class ListArray { private: int size; //整型数组的大小,表示可放元素的个数 int elem; //整型数组当前的元素个数,初始应为0,当elem等于size时,数组满 int *p; //指向整型数组,动态分配内存空间 public: ListArray(int s=100); //用s初始化整型数组的大小 void put(int n); //将n加入整型数组,elem自增1 void print(); //输出整型数组所有元素 ~ListArray(); }; 请完成该类成员函数的定义和测试程序的设计。 【提示】编写void put(int n)函数时,注意考虑数组满的情况。如果数组已满,则没有空间存储n, 此时需动态申请新的内存空间,其大小应比原数组大小大1,并将原数组元素备份到新数组,新数 组的最后一个元素存放n,当然不要忘记释放为原数组动态分配的内存空间。 */ #include "stdafx.h" #include<iostream> using namespace std; class ListArray { private: int size; //整型数组的大小,表示可放元素的个数 int elem; //整型数组当前的元素个数,初始应为0,当elem等于size时,数组满 int *p; //指向整型数组,动态分配内存空间 public: ListArray(int s=100); //用s初始化整型数组的大小 void put(int n); //将n加入整型数组,elem自增1 void print(); //输出整型数组所有元素 ~ListArray(); }; ListArray::ListArray(int s) { size = s; elem = 0; if(s) p = new int [s]; else p = NULL; } void ListArray::put(int n) { int *t; if(p == NULL) { p = new int[1]; p[0] = n; elem = size = 1; } else { if(elem == size) { size ++; t = new int [size]; for(int i = 0; i < elem; i ++) { t[i] = p[i]; } t[elem ++] = n; delete [] p; p = t; } else p[elem ++] = n; } } void ListArray::print() { for(int i = 0; i < elem; i ++) { cout << p[i] << ' '; } cout << endl; } ListArray::~ListArray() { if(p) delete[] p; } int _tmain(int argc, _TCHAR* argv[]) { ListArray a(2); a.put(1); a.put(2); a.print(); a.put(3); a.print(); a.put(5); a.print(); return 0; }
相关文章推荐
- 统计一个整型数组所有元素二进制表示中1的个数
- [面试算法]有一无符号整型数组,大小为10, 初始的数值随机,但在[0, 99]之间。请用C语言写一个过滤程序,令数组内的数据互不相等。
- 为什么用const说明的常量不能用来定义一个数组的初始大小?
- 有序整型数组A,大小为n,请给出一个O(n)的算法,删除重复元素,O(1)空间
- 求一个大小已知的整型数组中不重复的元素个数
- 给定一个整型数组,求数组元素大于等于所有元素平均值的元素个数
- 对于一个SIZE大小的数组,元素是[0,SIZE-1]区间内的整数,判断其中是否有重复元素
- 定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍
- 第十三周OJ项目定义好一个有10个元素的数组,先输入9个呈升序的数作为前9个元素,再输入一个数,要求按原来排序的规律将它插入数组中。
- 找出一个整型数组中元素最大值,使用面向对象方法
- jQuery的函数,有些直接就用$this(表示当前操作的标签),而也不见this在哪里定义过,这个this究竟谁什么?答:把this当成在内从中存在的JavaScript的一个变量即可,一个关键字
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n)
- 【CVTE】请使用js编写一个函数:chunk(arr,size),把一个数组arr按照指定的数组大小size分割成若干个数组块,传入的参数分别为数组
- 写一个函数,随机地从大小为n的数组中选取m个整数。要求每个元素被选中的概率相等。
- 设计一个算法找到数组中两个元素相加等于指定数的所有组合
- 一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。
- 面试题:一个整型数组中各元素排列组合得到的最大的一个数 ,比如,1,3,9,11,23,233,911 要得到:9,911,3,233,23,11,1
- 计算一个整型数组的元素之和
- 数组a中每个元素包含两个值第一个是整型第二个是字符串写一个sort函数以第一个值为键按从小到大排序