template<typename T>
int EraseRate(T &tArray[],T tRate){
int tCount=ArraySize(tArray),
tRes=tCount;
for (int i=0,ii=0;i+ii<tCount;i++){
if (ii) tArray[i]=tArray[i+ii];
while (tArray[i]==tRate&&i+ii<tCount){
if (i+(++ii)<tCount) tArray[i]=tArray[i+ii];
tRes--;}}
return(ArrayResize(tArray,tRes));}
template<typename T>
int EraseRate(T &tArray[],T tRate){
int tCount=ArraySize(tArray),
tDelCount=0;
for (int i=0,tNext=0;tNext<tCount;i++,tNext++){
if (tDelCount) tArray[i]=tArray[tNext];
while (tArray[i]==tRate&&tNext<tCount){
if (++tNext<tCount) tArray[i]=tArray[tNext];
tDelCount++;}}
return(ArrayResize(tArray,tCount-tDelCount));}
我认为,要使一个函数具有普遍性,它需要结合几种不同的算法,为输入数据量身定做。
当然
我终于找到了一种方法来做一个快速的哈希套装。
OK,一个二维数组,例如[13][12]。如何删除第7行,其余部分不作改动?
类似这样的事情
经过优化。
纠正了一点Nicholi Shen的 代码
现在它满足了问题的条件,对int数组有效。我认为这是最快的选择,考虑到过滤器的尺寸F将至少是6。