向量中的Find_if函数

时间:2011-03-29 06:44:43

标签: c++ stl visual-c++

此函数是否对给定的向量数组进行排序?

请提出您的建议

此致

vasantham

2 个答案:

答案 0 :(得分:3)

std::find_if不是vector的成员,它是来自<algorithm>的免费函数模板。

它不会对给定的范围进行排序,只是将迭代器返回给定谓词返回true的给定范围的第一个元素。

答案 1 :(得分:0)

Find_if是a的函数,它将迭代器返回到范围中的第一个元素。

   #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;
      }
  }

此函数返回第一个元素作为迭代器,它不会对矢量数组进行排序。