c++ stl在acm的入門及使用
阿新 • • 發佈:2018-01-20
進行 cout 模板庫 begin 依賴 post blank vector template
stl的全稱為Standard Template Library,即為標準模板庫,它主要依賴於模板,而不是對象,所以你需要對這個模板進行實例化,選擇你要使用的類型。
模板是一個怎樣的東西呢,可以看下這個TOJ5250
題意就是讓我去實現一個不定長可以放任意內容的數組。
我的實現代碼
#include <iostream> #include <malloc.h> using namespace std; template<typename T> class Vector{ private:T *p; int size; int n; public: Vector() {p=(T*)malloc(10*sizeof(T)); size=10; n=0;} void Push_back(const T a){ if(n==size){p=(T*)realloc(p,10*sizeof(T));size+=10;} *(p+n)=a; n++; } typedef T* Iterator; T* Begin() {return p;} T* End() {return p+n;} }; int vector, deque, list, forward_list, array, string;//禁止使用vector, list等 int main() { Vector<int> a; for(int i=1;i<=5;i++) a.Push_back(i); Vector<int>::Iterator it; for(it=a.Begin();it!=a.End();++it) { cout<<*it<<endl; } }
裏面我用了一些類的東西,暫且跳過。
void Push_back(const T a){ if(n==size){p=(T*)realloc(p,10*sizeof(T));size+=10;} *(p+n)=a; n++; }
看下這個部分好了
c++ stl在acm的入門及使用