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 asectionof the code:

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.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; }