?? vector.h
字號:
#include <iostream.h>
template <class T>class vector
{
public:
vector(unsigned numElements);
vector(unsigned numElements,T initValue);
vector(const vector<T>&source);
virtual ~vector();
T& operator[](unsigned index)const;
vector<T>& operator=(const vector<T>&);
unsigned length()const;
unsigned setSize(unsigned numOfElements);
unsigned setSize(unsigned numOfElements,T initValue);
protected:
T * data;
unsigned size;
};
template<class T>vector<T>:: vector(unsigned num):size( num)
{
data=new T[size];
assert(data!=0);
}
template<class T>vector<T>:: vector(unsigned num,T v):size(num)
{
data=new T[size];
assert(data!=0);
for(int i=0;i<size;i++)
data[i]=v;
}
template<class T>vector<T>:: vector(const vector<T>&s):size(s.size)
{
data=new T[size];
assert(data!=0);
for(int i=0;i<size;i++)
data[i]=s.data[i];
}
template<class T>vector<T>:: ~vector()
{
delete[]data;
data=0;
size=0;
}
template <class T>T& vector<T>::operator [](unsigned index)const
{
assert(index<size);
return data[index];
}
template<class T> unsigned vector<T>:: length()const
{
return size;
}
template<class T>unsigned vector<T>::setSize (unsigned num)
{
if(size!=num)
{
T *np=new T[num];
unsigned n=num<size ?num:size;
for(int i=0;i<n;i++)
np[i]=data[i];
delete []data;
size =num;
data=np;
}
return size;
}
template<class T>unsigned vector<T>::setSize(unsigned num,T initValue)
{
if(size!=num)
{
T * np=new T[num];
unsigned n=num<size ?num:size;
for(unsigned i=0;i<n;i++)
np[i]=initValue;
delete []data;
size =num;
data=np;
}
return size;
}
template <class T>vector<T>&vector<T>::operator = (const vector<T>&right)
{
if(size !=right.size ){
T*np=new T[right.size];
assert(np!=0);
delete[]data;
size = right.size ;
data=np;
}
for(unsigned i=0;i<size;i++)
data[i]=right.data[i];
return *this;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -