2011-03-29 61 views
-3

此函數是否對給定的向量數組進行排序?向量中的Find_if函數

給你的建議請

問候,

vasantham

+1

http://www.sgi.com/tech/stl/find_if.html – 2011-03-29 06:47:13

+0

想要排序還是要查找? – Naveen 2011-03-29 06:50:23

回答

0

Find_if是一個函數並返回一個迭代器到範圍中的第一個元素。

#include <list> 
    #include <algorithm> 
    #include <iostream> 

    bool greater10 (int value) 
    { 
    if(value == 10) 
    { 
    return true; 
    } 
    return false; 
    } 

int main() 
    { 
     using namespace std; 

     list <int> L; 
     list <int>::iterator Iter; 
     list <int>::iterator result; 

     L.push_back(10); 
     L.push_back(9); 
     L.push_back(15); 
     L.push_back(8); 
     L.push_back(10); 

    cout << "L = (" ; 
     for (Iter = L.begin() ; Iter != L.end() ; Iter++) 
      cout << *Iter << " "; 
     cout << ")" << endl; 


     result = find_if(L.begin(), L.end(), &greater10); 
     for(;result != L.end(); result++) 
     { 
     cout << *result <<"\t"; 
     cout <<endl; 
     } 
    } 

該函數返回第一個元素作爲迭代器,它不會對矢量數組進行排序。

3

std::find_if不是向量中的一員,它是從<algorithm>自由函數模板。

它不排序它給出的範圍,它只是返回給定謂詞返回true給定範圍的第一個元素的迭代器。