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

📄 vector.h

📁 数据结构常用算法——向量遍历器。希望能给读者朋友带来帮助。
💻 H
字号:
template<class T>
class Vector{
public:
	//构造函数
	Vector(unsigned);
    Vector(unsigned,T);
	Vector(const Vector<T> &);
	//析构函数
	virtual~Vector();
	//下标运算
    T & operator[](unsigned);
	//赋值运算
	Vector<T> & operator=(const Vector<T> &);
	//输出运算
	friend ostream & operator<<(ostream & out,Vector<T> &);
	unsigned length() const;
	//动态改变向量大小
	unsigned setSize(unsigned);
	unsigned setSize(unsigned,T);
private:
	unsigned size;
	T * data;
};

//构造函数
template<class T>
Vector<T>::Vector(unsigned num):size(num){
	data=new T[size];
}

template<class T>
Vector<T>::Vector(unsigned num,T V):size(num){
	data=new T[size];
	for(unsigned i=0;i<size;i++)
		data[i]=V;
}

template<class T>
Vector<T>::Vector(const Vector<T> & V){
	size=V.size;
	data=new double[size];
	for(int i=0;i<size;i++)
		data[i]=V.data[i];
}

//析构函数
template<class T>Vector<T>::~Vector(){
	delete[]data;
}	 

//[]操作符重载
template<class T>
T & Vector<T>::operator[](unsigned u){
	return data[u];
}

//赋值操作符重载
template<class T>Vector<T> &
Vector<T>::operator=(const Vector<T> & V){
	if(this==&V)
		return *this;
	delete[]data;
	size=V.size;
	data=new double[size];
	for(int i=0;i<size;i++)
		data[i]=V.data[i];
	return *this;
}

//输出操作符重载
template<class T>ostream & operator<<(ostream & out,Vector<T> & V){
	for(unsigned i=0;i<V.size;i++)
		out<<"["<<i<<"]="<<V.data[i]<<";";
	cout<<endl;
	return out;
}

//取向量长度
template<class T>
unsigned Vector<T>::length()const{
	return size;
}

//动态重置向量
template<class T>unsigned Vector<T>::setSize(unsigned u){
	if(u!=size){
		T * np=new T[u];
		unsigned n=u<=size?u:size;
		for(int i=o;i<n;i++)
			np[i]=data[i];
		delete[]data;
		size=u;
		data=np;
	}
	return size;
}

template<class T>unsigned
Vector<T>::setSize(unsigned u, T t){
	if(u!=size){
	size=u;
    delete[]data;
	data=new T[size];
}
    for(int i=0;i<n;i++)
		data[i]=t;
	return size;
	}

⌨️ 快捷键说明

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