c++ 模板
来源:互联网 发布:知乎如何盈利 编辑:程序博客网 时间:2024/06/05 02:50
#ifndef TEST_H
#define TEST_H
template<typename T>class Array
{
private:
T* parray; //定义动态数组
int room; //存储空间大小的值
public:
Array()
:room (0)
,parray (NULL)
{
parray=(int*)malloc(sizeof(int)*room);
}
~Array()
{
if(parray!=NULL)
free(parray);
}
int push_back(T m) //推入一个数组元素
{
room++;
parray=(T*)realloc(parray,sizeof(T)*room);
*(parray+room-1)=m;
return *(parray+room-1);
}
int sizeof_Array() //得到数组大小
{
return room;
}
bool remove(int k) //删除第k个元素
{
printf("删除元素%d后",k);
if(k>room-1 || k<0)
{
return false;
}
else
{
memmove(parray+k,parray+k+1,sizeof(T)*(room-1-k));
room-=1;
return true;
}
}
bool insert(int k,T element) //插入一个元素
{
printf("插入元素%d后",k);
if(k>room || k<0)
{
return false;
}
else
{
room++;
parray=(T*)realloc(parray,sizeof(T)*room);
memmove(parray+k+1,parray+k,sizeof(T)*(room-1-k));
*(parray+k)=element;
}
}
T query(int k) //查询第k个元素的值
{
if(k>room-1 || k<0)
{
return -1;
}
else
{
return *(parray+k);
}
}
void display() //显示数组内元素个数
{
for(int i=0;i<room;i++)
cout<<query(i)<<endl;
cout<<"数组内元素个数"<<sizeof_Array()<<endl;
}
T* begin()
{
return parray;
}
T* end()
{
return parray + room;
}
};
#endif
test.cpp
#include<iostream>
#include"test.h"
using namespace std;
void main()
{
Array<int> intArray;
intArray.push_back(1);
intArray.push_back(2);
intArray.push_back(3);
intArray.push_back(4);
intArray.push_back(5);
intArray.push_back(6);
intArray.push_back(7);
intArray.push_back(8);
intArray.push_back(9);
/*intArray.display();
intArray.remove(3);
intArray.display();
cout<<intArray.begin()<<endl;
cout<<intArray.end()<<endl;
int* ite=NULL;
for(ite=intArray.begin();ite!=intArray.end();ite++)
{
printf("%d ",*ite);
}
for(ite=intArray.end();ite!=intArray.begin();ite--)
{
printf("%d ",*ite);
}*/
}
- C++-模板
- C++-模板
- C++:模板
- C++:模板
- C++:模板
- 模板 (C++)
- C ++ 模板
- C ++ 模板
- 【C++】模板
- c++----------模板
- C++--------------------------------------------模板
- c++--模板
- C++:模板
- 【基础C&C++】模板
- 【c/c++】类模板
- 【C/C++】模板类
- 【c++】模板和模板类
- C/C++:函数模板与类模板
- ado和odbc读取excel总结
- poi生成excel 样式控制
- 【珍藏】C/C++热门精品资料地址集(110个)
- 设计模式--单例模式
- Pattern - Matcher
- c++ 模板
- iPhone在降级时遇到1600错误怎么办?
- 【Openstack】Grizzly目前版本相对于Folsom的变更
- IOS开发常用代码汇总4
- Mac OS 看机起动JIRA
- 禁掉MPMoviePlayerController的Airplay
- 设计模式--工厂模式
- 【VC皮肤】skin++皮肤库使用
- ArcGIS API for Flex 发布应用时 安全沙箱的问题