辛辛苦苦寫了乙個上午的資料結構,**基本能將vector的功能實現,其中vector用vectors代替,iterator用iterators代替,支援隨機訪問
**寫的比較粗糙,為了節省時間,對於越界問題沒有做特殊處理,**風格不是特別好。功能經過了自己的檢驗,如果有寫錯的地方,希望大家能指出來,我會及時改正~~~
//stl 全部 左開右閉
//為了節省時間 嗯 時間就是生命 tle go died !!! 所以插入移除的位置沒做特別判斷 只要合理利用 就沒問題
#include #include using namespace std;
template class vectors
iterators(const iterators& it)
iterators(_tp* it)
iterators& operator = (iterators& it)
iterators& operator + (int len)
iterators& operator - (int len)
iterators& operator ++ ()
iterators& operator -- ()
iterators operator ++ (int)
iterators operator -- (int)
bool operator != (iterators it)
_tp& operator * ()
private:
_tp* pointer;
};vectors(int len=0)
vectors(const vectors<_tp,n>&);
~vectors()
iterators begin()
iterators end()
iterators rbegin()
iterators rend()
_tp front()
_tp back()
iterators insert(iterators,_tp);
void insert(iterators,iterators,iterators);
void insert(iterators,int,_tp);
iterators erase(iterators);
iterators erase(iterators,iterators);
_tp& operator (int pos)
vectors<_tp,n>& operator = (const vectors<_tp,n>&);
void pop_back()
void push_back(_tp);
void assign(int len,_tp elem)
void assign(_tp* s,_tp* e)
void clear()
void resize(size_t len)
void reserve(size_t len)
int size()
size_t capacity()
bool empty()
private:
_tp* p;
int length;
int sizes;
};template vectors<_tp,n>::vectors(const vectors<_tp,n>& tmp)
template void vectors<_tp,n>::push_back(_tp val)
template vectors<_tp,n>& vectors<_tp,n>::operator = (const vectors<_tp,n>& tmp)
template typename vectors<_tp,n>::iterators vectors<_tp,n>::insert(iterators s,_tp elem)
*pos=elem;
return iterators(pos);
}template void vectors<_tp,n>::insert(iterators s,int len,_tp elem)
for(_tp* ps=pos;ps!=pos+len;ps++)
*ps=elem;
}template void vectors<_tp,n>::insert(iterators cur,iterators st,iterators ed)
while(stypename vectors<_tp,n>::iterators vectors<_tp,n>::erase(iterators s)
{ _tp* pos=s.pointer;
_tp* po=pos+1;
while(potypename vectors<_tp,n>::iterators vectors<_tp,n>::erase(iterators st,iterators ed)
{ _tp* s=st.pointer;
_tp* e=ed.pointer;
int len=e-s;
_tp* po=s+len;
while(poa(8);
a.assign(x,x+5);
a[5]=7;
a[6]=42;
a[7]=9999;
cout<::iterators it=a.begin();it!=a.end();it++)
cout<<*it<<" ";
cout<
STM32f103VE學習之預備知識
通訊方式 波特率 bd 可以通俗的理解為乙個裝置在一秒鐘內傳送 或接收 了多少碼元的資料。如每秒鐘傳送240個字元,而每個字元格式包含10位 1個起始位,1個停止位,8個資料位 這時的波特率為240bd,位元率為10位 240個 秒 2400bps。又比如每秒鐘傳送240個二進位制位,這時的波特率為...
eclipse3 1中ve外掛程式的安裝
最近準備自己來做乙個eclipse的外掛程式,昨天按上面的介紹做了一遍,算是基本入門了。不過在我安裝好以後啟動eclipse後卻始終沒有 visual class 此專案,在網上搜了一下,終於找到解決辦法。就是 關閉eclipse.把eclipse安裝目錄configuration裡除了config...
Yahoo開源實時大資料處理服務系統Vespa
編譯 薛命燈 編輯 natalie 從 2006 年開源 hadoop 開始,yahoo 也就是現在的 oath 為廣大開發者社群的大資料基礎設施做出了不可磨滅的貢獻。現在,我們又邁出了堅實的一步,yahoo 的大資料處理和服務引擎 vespa 正式在 github 上開源了 有了 vespa,開發...