模板类实现数组

版权声明:如需转载,请联系原作者授权... https://blog.csdn.net/Superman___007/article/details/82313209

   模板类实现数组 . 

#include<iostream>
using namespace std;

//数组:是一块连续空间
template<typename T>
class Array
{
public:
	//声明构造器
	Array();
	Array(T*,int);
	T at(int );//返回指定位置的元素
	unsigned short size();
	void insert(int,T);
private:
	T buf[100];
	int ilen;//存储元素的个数
};

template<typename T>
Array<T>::Array()
{
	ilen=0;
}
template<typename T>
Array<T>::Array(T buf[],int len)
{
	int i=0;
	for(i=0;i<len;i++)
		this->buf[i]=buf[i];
	this->ilen=len;
}
template<typename T>
T Array<T>::at(int index)
{
	return this->buf[index];
}
template<typename T>
unsigned short Array<T>::size( )
{
	return this->ilen;
}
//插入第loc位置之前:
//loc从1开始  
template<typename T>
void Array<T>::insert(int loc,T num)
{
	//为满 
	if(this->ilen==100)
		return;

	//先位移 loc=3 
	int i=this->ilen-1;
	while( i>=0 && i>=loc-1)
	{
		this->buf[i+1]=this->buf[i];
		i--;
	}
	//插入
	this->buf[i+1]=num;
	this->ilen++;
}

int main()
{
//实例化一个泛型:
	
	float buf[10]={1.1,2.2,3.3,4.5,5.6,6.7};
	Array<float> b(buf,6);
	//插入
	b.insert(3,7.9);		

	//遍历	
	int i=0;
	while(i<b.size())
		cout<<b.at(i++)<<" ";
	cout<<endl;
		
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Superman___007/article/details/82313209