When to use vector containers?

Should they be used all the time? If so what is the point of have the "new" and "delete" operators? I'm guessing that vectors can sometimes slow things down a bit.

On a side note, I've got a rather complex algorithm, with lots of news and deletes, and things just don't quite look right to me. Here is a *section* of the code:

Code:

`#include <cmath>`

#include "poly.hpp"

poly::poly () {

corners = new point[3];

pvrt = new vertice[3];

}

poly::~poly () {

delete[] corners;

delete[] pvrt;

}

poly &poly::operator =(const poly &rhs){

if(this != &rhs){

int i;

A = rhs.A;

B = rhs.B;

C = rhs.C;

D = rhs.D;

n = rhs.n;

beta = rhs.beta;

norm = rhs.norm;

delete[] corners;

corners = new point[n];

delete[] pvrt;

pvrt = new vertice[n];

for(i=0;i<n;i++){

corners[i] = rhs.corners[i];

pvrt[i] = rhs.pvrt[i];

}

}

return *this;

}

I could certainly justify using new and delete though, if it is faster that way. This program does tree-like recursion which can take a lot of time.