C++ 自定义动态数组模板
2010-06-28 17:57
411 查看
#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T>
class MyArray
{
int len;
public:
T *data;
MyArray()
{
data = NULL;
len = 0;
}
~MyArray()
{
delete[] data;
}
T& operator [](int index);
void push(T d);
};
template <class T>
T& MyArray<T>::operator [](int index)
{
if(index<0||index>(len-1))
{
cout<<"Bad subscript!"<<endl;
exit(1);
}
return data[index];
}
template <class T>
void MyArray<T>::push(T d)
{
T *pdata = data;
data = new T[len + 1];
if(pdata != NULL)
{
for(int i = 0 ; i < len ; i++)
{
data[i] = pdata[i];
}
delete[] pdata;
}
data[len] = d;
len++;
}
//测试代码
int main(int argc, char* argv[])
{
MyArray<int> a;
a.push(11);
a.push(22);
a.push(33);
a.push(55);
a[0]=44;
cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]<<endl;
return 0;
}
#include <iostream>
using namespace std;
template <class T>
class MyArray
{
int len;
public:
T *data;
MyArray()
{
data = NULL;
len = 0;
}
~MyArray()
{
delete[] data;
}
T& operator [](int index);
void push(T d);
};
template <class T>
T& MyArray<T>::operator [](int index)
{
if(index<0||index>(len-1))
{
cout<<"Bad subscript!"<<endl;
exit(1);
}
return data[index];
}
template <class T>
void MyArray<T>::push(T d)
{
T *pdata = data;
data = new T[len + 1];
if(pdata != NULL)
{
for(int i = 0 ; i < len ; i++)
{
data[i] = pdata[i];
}
delete[] pdata;
}
data[len] = d;
len++;
}
//测试代码
int main(int argc, char* argv[])
{
MyArray<int> a;
a.push(11);
a.push(22);
a.push(33);
a.push(55);
a[0]=44;
cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]<<endl;
return 0;
}
相关文章推荐
- 从零开始学C++之模板(二):类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
- c++动态数组模板实例
- 动态分配数组C++模板
- c++自定义一个动态数组vector
- 从零开始学C++之模板(二):类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
- C++中new一个动态数组(内置类型和自定义类型的区别)
- C/C++动态自定义结构体数组实例锻炼-学生成绩排序
- C++晋升之std中vector的实现原理(标准模板动态库中矢量的实现原理)
- C++动态申请数组
- C++中的动态多维数组
- C++动态数组的实现
- 打造 C++ 最灵活动态数组结构 (三)
- c/c++ 动态申请数组
- C++动态创建数组
- C++中动态数组CArray的使用
- [C++技巧] C++中动态开辟多维数组
- c和c++分别实现动态分配二、三维数组
- C++:多维数组的动态分配(new)和释放(delete)
- 【转】C++中new动态定义一维数组,二维数组,三维数组
- C++中关于[]静态数组和new分配的动态数组的区别分析