unique[STL標準模板庫的函式]

這是c++模板的一個函式,在algorithm頭檔案中,有兩個版本的函式聲明template inline

_FwdIt unique(_FwdIt _First, _FwdIt _Last)

template inline

_FwdIt _Unique(_FwdIt _First, _FwdIt _Last, _Pr _Pred)

前一個是當序列的相鄰的數據相同時,刪除相鄰相同的數字,第二個使用仿函式來替代數列的數字相同這一概念

該函式的精確實現可以搜尋編程範本這本書,這裡給出大概的實現

template<class Iter>

Iter _unique(Iter F1,Iter L1)

{

queue<Iter> Q;

Iter T=_find_adjacent_mismatch1(F1,L1);

while(T!=L1)

{

Q.push(T);

T=_find_adjacent_mismatch1(T,L1);

}

Q.push(L1);

Iter CD=Q.front();

Iter CR=Q.front();

Q.pop();

while(CR!=L1)

{

while(++CR!=Q.front())

*CD=*CR,++CD;

Q.pop();

}

return CD;

}

相關詞條

熱門詞條

聯絡我們