[mareframe] View of /trunk/gadget/popratiovector.cc
View of /trunk/gadget/popratiovector.cc
Parent Directory
| Revision Log
Revision 1 -
( download)
( annotate)
Mon Feb 10 17:09:07 2014 UTC
(10 years, 5 months ago)
by agomez
File size: 1505 byte(s)
Initial version based on Gadget 2.2.00
#include "popratiovector.h"
#include "gadget.h"
PopRatioVector::PopRatioVector(int sz, PopRatio initial) {
size = (sz > 0 ? sz : 0);
int i;
if (size > 0) {
v = new PopRatio[size];
for (i = 0; i < size; i++)
v[i] = initial;
} else
v = 0;
}
PopRatioVector::PopRatioVector(const PopRatioVector& initial) {
size = initial.size;
int i;
if (size > 0) {
v = new PopRatio[size];
for (i = 0; i < size; i++)
v[i] = initial.v[i];
} else
v = 0;
}
PopRatioVector::~PopRatioVector() {
if (v != 0) {
delete[] v;
v = 0;
}
}
void PopRatioVector::resize(PopRatio value) {
int i;
if (v == 0) {
v = new PopRatio[1];
} else {
PopRatio* vnew = new PopRatio[size + 1];
for (i = 0; i < size; i++)
vnew[i] = v[i];
delete[] v;
v = vnew;
}
v[size] = value;
size++;
}
void PopRatioVector::resize(double* num, double rat) {
int i;
if (v == 0) {
v = new PopRatio[1];
} else {
PopRatio* vnew = new PopRatio[size + 1];
for (i = 0; i < size; i++)
vnew[i] = v[i];
delete[] v;
v = vnew;
}
PopRatio pop;
v[size] = pop;
v[size].N = num;
v[size].R = rat;
size++;
}
void PopRatioVector::Delete(int pos) {
int i;
if (size > 1) {
PopRatio* vnew = new PopRatio[size - 1];
for (i = 0; i < pos; i++)
vnew[i] = v[i];
for (i = pos; i < size - 1; i++)
vnew[i] = v[i + 1];
delete[] v;
v = vnew;
size--;
} else {
delete[] v;
v = 0;
size = 0;
}
}
|