gvector.h

来自「将pdf文档转换为高质量的html文档」· C头文件 代码 · 共 102 行

H
102
字号
#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       

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?