2013-02-18 41 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更快。奇怪而真實。

回答