diff options
Diffstat (limited to 'src/SVector.h')
-rw-r--r-- | src/SVector.h | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/SVector.h b/src/SVector.h index 9a260542b..d4d49c717 100644 --- a/src/SVector.h +++ b/src/SVector.h @@ -6,13 +6,12 @@ #ifndef SVECTOR_H #define SVECTOR_H -// A simple expandable vector. -// T must support assignment. +// A simple expandable integer vector. // Storage not allocated for elements until an element is used. // This makes it very lightweight unless used so is a good match for optional features. -template<class T, int sizeIncrement> + class SVector { - T *v; + int *v; unsigned int size; // Number of elements allocated unsigned int len; // Number of elements in vector bool allocFailure; // A memory allocation call has failed @@ -20,17 +19,17 @@ class SVector { // Internally allocate more elements than the user wants to avoid // thrashng the memory allocator void SizeTo(int newSize) { - if (newSize < sizeIncrement) - newSize += sizeIncrement; + if (newSize < 4000) + newSize += 4000; else newSize = (newSize * 3) / 2; - T* newv = new T[newSize]; + int* newv = new int[newSize]; if (!newv) { allocFailure = true; return; } size = newSize; - unsigned int i=0; + unsigned int i=0; for (; i<len; i++) { newv[i] = v[i]; } @@ -83,7 +82,7 @@ public: } return *this; } - T &operator[](unsigned int i) { + int &operator[](unsigned int i) { if (i >= len) { if (i >= size) { SizeTo(i); |