新闻资讯
看你所看,想你所想

unique(STL标準模板库的函式)

unique(STL标準模板库的函式)

这是c++模板的一个函式,在algorithm头档案中,有两个版本的函式声明template<class _FwdIt> inline

_FwdIt unique(_FwdIt _First, _FwdIt _Last)

template<class _FwdIt,

class _Pr> 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;
}

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com