Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет506/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   502   503   504   505   506   507   508   509   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

#include  

#include  

#include  

#include  

using namespace std; 

class In_10_50{ 

 public:

 

   bool operator()(int x) {return x > 10 && x < 50;}

};

int main(){

 

ifstream in ("inpnum"); 

 vector 

v; 

 int 

x;

 

while ( in >> x, !in.eof()){

 

   v.push_back(x);} 

 

for (int i = 0; i


377

 

cout << endl;

 

// 51-ге тең элементті іздеу:

 

cout << *fi nd(v.begin(), v.end(), 51) << endl;

 

// 10

 

cout << *fi nd_if(v.begin(), v.end(), In_10_50()) 

        << endl; 

   return 0;

}

Программа жұмысының нəтижесі:



56 34 54 0 76 23 51 11 51 11 76 88

51

34

fi nd_fi rst_of

fi nd_fi rst_of

 алгоритмі екінші тізбек элементінің бірінші тізбекке  алғаш 

енгізілуін іздеп табады:

templ1ate

 For1 

fi nd_fi rst_of(For1 fi rst1, For1 last1, 

 

    For2 fi rst2, For2 last2); 

template 

 For1 

fi nd_fi rst_of(For1 fi rst1, For1 last1, 

 

    For2 fi rst2, For2 last2, BinPred pred); 

Тізбектердің шекаралары итераторлар көмегімен беріледі. Алгоритмнің 

бірінші формасы кез келген элементтің енгізілуін іздейді, ал екінші форма-

сы бірінші жəне екінші тізбектердің сəйкес элементтерін талдайтын бинарлы 

предикат орындалатын объектінің енгізілуін іздейді. Іздеу сəтсіз орындалған 

жағдайда 



last1

 мəні қайтарылады.



fi nd_en d

fi nd_end

 алгоритмі бірінші тізбекке екінші тізбектің алғашқы енгізілуін 

табады (предикатты талдай отырып немесе талдаусыз) жəне итераторды соңғы 

сəйкес келетін элементке қайтарады:



template

 For1 

fi nd_end(For1 fi rst1, For1 last1, 

 

    For2 fi rst2, For2 last2); 

template 

 For1 

fi nd_end(For1 fi rst1, For1 last1,

 

    For2 fi rst2, For2 last2, BinPred pred);

Іздеу сəтсіз орындалған жағдайда 



last1

 мəні қайтарылады.

25-1140



378

for_eac h

Алгоритм тізбектің əрбір элементі үшін тағайындалған функцияны 

қайтарады:

template

 

Function for_each(In fi rst, In last, Function f);

Алгоритмнің қолданылу мысалы 371 б. терілген.



mismatc h

mismatch

 алгоритмі екі тізбектің өзара сəйкес тең емес алғашқы элемент-

тер жұбын іздейді жəне итераторларды осы жұпқа қайтарады: 

template

 

pair mismatch(In1 fi rst1, In1 last1, In2 fi rst2);

template  

 

pair mismatch(In1 fi rst1, In1 last1, 

 

     In2 fi rst2, BinPred pred);

Екінші тізбектің ұзындығы бірінші тізбектің ұзындығынан артық неме-

се оған тең болып есептеледі. Қолданушы нені сəйкессіздік ретінде есептеу 

керектігін анықтайтын предикатты тағайындай алады.





Достарыңызбен бөлісу:
1   ...   502   503   504   505   506   507   508   509   ...   642




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет