Функция Find_if в векторе - PullRequest
0 голосов
/ 29 марта 2011

Эта функция сортирует заданный векторный массив?

Дайте ваши предложения, пожалуйста

С уважением,

vasantham

Ответы [ 2 ]

3 голосов
/ 29 марта 2011

std::find_if не является членом вектора, это бесплатный шаблон функции от <algorithm>.

Он не сортирует заданный диапазон, он просто возвращает итератор к первому элементу заданного диапазона, для которого данный предикат возвращает true.

0 голосов
/ 29 марта 2011

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

Эта функция возвращает первый элемент в качестве итератора, и она не будет сортировать векторный массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...