c++ 动态数组的实现
来源:互联网 发布:淘宝可以办假的毕业证 编辑:程序博客网 时间:2024/06/05 03:46
写动态数组的实现,苦思冥想终于做出来了,和大家分享一下:
#include <iostream>
using namespace std;
template <class T>
class CDynamicArray
{
public:
CDynamicArray();
CDynamicArray(int n);
virtual ~CDynamicArray();
void traverse();
void push_back(T m);
void push_front(T m);
private:
T *pData;
int nExistedNum;
int nMaxNum;
};
template <class T>
CDynamicArray<T>::CDynamicArray()
{
int n = 10;
pData = new T[n];
nExistedNum = 0;
nMaxNum = n;
}
template <class T>
CDynamicArray<T>::~CDynamicArray()
{
}
template <class T>
CDynamicArray<T>::CDynamicArray(int n)
{
pData = new T[n];
nExistedNum = 0;
nMaxNum = n;
}
template <class T>
void CDynamicArray<T>::push_back(T m)
{
if(nExistedNum > nMaxNum -1)
{
T *pDataTemp = new T[nMaxNum + 10];
for(int i = 0;i < nMaxNum;i++)
{
pDataTemp[i] = pData[i];
}
delete pData;
nMaxNum += 10;
pData = pDataTemp;
}
pData[nExistedNum] = m;
nExistedNum++;
}
template <class T>
void CDynamicArray<T>::push_front(T m)
{
if(nExistedNum > nMaxNum -1)
{
T *pDataTemp = new T[nMaxNum + 10];
for(int i = 0;i < nMaxNum;i++)
{
pDataTemp[i] = pData[i];
}
delete pData;
nMaxNum += 10;
pData = pDataTemp;
}
for(int i = nExistedNum; i >= 0; i--)
pData[i+1] = pData[i];
pData[0] = m;
nExistedNum++;
}
template <class T>
void CDynamicArray<T>::traverse()
{
for(int i=0; i<nExistedNum; i++)
cout<<pData[i]<<endl;
}
int main()
{
CDynamicArray<int> array;
for(int i = 0;i < 20;i++)
{
array.push_back(i);
}
array.traverse();
array.push_front(100);
array.traverse();
return 1;
}
- 动态数组的 C 实现
- C实现动态数组
- C语言动态数组的完整实现
- C语言动态数组的完整实现
- C语言中动态数组的实现
- c语言中动态数组的实现
- C语言中动态数组的实现
- 字符串动态数组的C实现方法
- C语言中动态数组的实现
- C、C++之动态数组的实现
- 动态数组C语言实现
- C语言实现动态数组
- C/C++实现动态数组
- C语言实现动态数组
- c语言实现动态数组
- 动态数组的实现
- 动态数组的实现
- 动态数组的实现
- PKU 3537
- Running an Active Object in OpenC
- Windows CE S3C2440A显示驱动编码分析
- 积分啊
- linux spi驱动分析
- c++ 动态数组的实现
- Taobao分布式文件系统TFS简析
- 汇编指令表
- 写了个监控的shell ,望指点
- Struts1.x的三种action的比较(笔记)
- Big Endian和Little Endian的区别
- OSG物体随鼠标移动(即点移动)
- AAC文件格式与解码流程(未完待续)
- Chapter 22: Using Item Renderers and Item Editors--Creating an item renderer and item editor