#ifndef Complex_Vector_H
#define Complex_Vector_H
#include \"Complex_Number.h\"
#include <iostream>
#include <string>
class ComplexVector:public ComplexNumber
{
private:
ComplexNumber* p;
int length;
int size;
public:
ComplexVector();
ComplexVector(int setlength);
~ComplexVector();
ComplexNumber& operator[](int index){return p[index];}
int capacity_c(){return length - size;}
int size_c(){return size;}
bool isempty();
void push_back(ComplexNumber C);
void pop_back();
void operator+=(ComplexNumber C);
friend ostream &operator<<(ostream& output,const ComplexVector& V)
{
for(int i = 0;i < V.size;i++)output << V.p[i];
}
};
ComplexVector::ComplexVector()
{
p = NULL;
length = 0;
size = 0;
}
ComplexVector::ComplexVector(int setlength)
{
p = new ComplexNumber[setlength];
length = setlength;
size = 0;
}
ComplexVector::~ComplexVector()
{
delete[] p;
}
bool ComplexVector::isempty()
{
if(size == 0)return true;
else return false;
}
void ComplexVector::push_back(ComplexNumber C)
{
if(capacity_c() == 0)
{
ComplexNumber* ptemp = new ComplexNumber[2*size + 1];
length = 2*size + 1;
for(int i=0;i<size;i++)
{
ptemp[i] = p[i];
}
delete[] p;
p = ptemp;
ptemp = NULL;
}
p[size] = C;
size++;
}
void ComplexVector::operator+=(ComplexNumber C)
{
if(capacity_c() == 0)
{
ComplexNumber* ptemp = new ComplexNumber[2*size + 1];
length = 2*size + 1;
for(int i=0;i<size;i++)
{
ptemp[i] = p[i];
}
delete[] p;
p = ptemp;
ptemp = NULL;
}
p[size] = C;
size++;
}
void ComplexVector::pop_back()
{
size--;
}
#endif
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



