2013-02-18 42 views
1

如何检查元素是否在数组中或计算特定元素的出现次数?计算向量中的元素或检查元素是否在D中的数组中

我知道我能砍我自己:

int main() 
{ 
    int [] a = [1,2,3,4,3,4,5,6,6,3,3,3]; 
    assert(count(a,6) == 2); 
    assert(contains(a,7) == false); 
    return 0; 
} 

uint count(T)(T[] a, T t){ 
    uint cnt = 0; 
    foreach(elem; a){ 
    if(elem == t) ++cnt; 
    } 
    return cnt; 
} 

bool contains(T)(T[] a, T t){ 
    foreach(elem; a){ 
    if(elem == t) return true; 
    } 
    return false; 
} 

,但必须有一个“库的方式”来做到这一点!

编辑:我只是比较std.algorithm的canFind()和我和事实证明,这contains更快。奇怪而真实。

回答