1. 程式人生 > >c++ stl在acm的入門及使用

c++ stl在acm的入門及使用

進行 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的入門及使用