Sha256: 5533918156b0cc06440d5d207f86e70dc11137f93d89d4d1ab186c2a0568a098
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
#ifndef _VECTOR_H #define _VECTOR_H #include "gtypes.h" template<class T> class GVector{ private: int _size; T* last; T* storage; void resize(){ if (_size==0) _size=2;else _size=2*_size; T *tmp=new T[_size]; if (storage){ last=copy(storage,last,tmp); delete [] storage; } else last=tmp; storage=tmp; } T* copy(T* src1,T* scr2,T* dest){ T* tmp=src1; T* d=dest; while(tmp!=scr2){ *d=*tmp; d++;tmp++; } return d; } public: typedef T* iterator; GVector(){ _size=0; last=0; storage=0; } virtual ~GVector(){ delete[] storage ; } void reset(){ last=storage; } int size(){ return (last-storage); } void push_back(const T& elem){ if (!storage||(size() >=_size)) resize(); *last=elem; last++; } T pop_back() { if (last!=storage) last--; return *last; } T operator[](unsigned int i){ return *(storage+i); } GBool isEmpty() const{ return !_size || (last==storage) ; } iterator begin() const{ return storage; } iterator end() const { return last; } }; #endif
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pdf2json-0.2.0 | pdf2json-0.52-source/src/GVector.h |
pdf2json-0.1.0 | pdf2json-0.52-source/src/GVector.h |