⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 array.h

📁 里面包含各种数据结构方面的知识,如链表,树,图等 含有vc代码
💻 H
字号:
template <class T> 
class Array
{
private:
	T *arr;
	int size;
public:
	Array(int sz = 100);
	Array(const Array<T>& a);
	~Array(void);

	int Size(void)const;
	void operator=(const Array<T>& a);
	T& operator[](int i);
	void Resize(int sz);
};

template <class T> 
Array<T>::Array(int sz)
{
	if(sz <= 0)
	{
		cout << "无效的数组个数" << endl;
		exit(0);
	}

	arr = new T[sz];
	size = sz;
}

template <class T> 
Array<T>::Array(const Array<T>& a)
{
	arr = new T[a.size];
	for(int i = 0; i < a.size; i++)
		arr[i] = a.arr[i];
	size = a.size;
}

template <class T> 
Array<T>::~Array(void)
{
	delete []arr;
}

template <class T> 
int Array<T>::Size(void)const
{
	return size;
}

template <class T> 
void Array<T>::operator=(const Array<T>& a)
{
	delete arr;
	arr = new T[a.size];

	for(int i = 0; i < a.size; i++)
		arr[i] = a.arr[i];
	size = a.size;
}

template <class T> 
T& Array<T>:: operator[](int i)
{
	if(i < 0 || i > size-1)
	{
		cout << "下标越界" << endl;
		exit(0);
	}
	return arr[i];
}

template <class T> 
void Array<T>::Resize(int sz)
{
	if(sz <= 0)
	{
		cout << "无效的数组个数" << endl;
		exit(0);
	}
	if(sz == size) return;

	T* newArray = new T[sz];

	int n = (sz <= size) ? sz: size;
	for(int i = 0; i < n; i++)
		newArray[i] = arr[i];

	delete []arr;
	arr = newArray;
	size = sz;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -