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



Pdf көрінісі
бет345/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   341   342   343   344   345   346   347   348   ...   466
Байланысты:
pavlovskaia-jogargy-dengeili

COUNT_IF: 2
Əдістер адаптерлері
Контейнерлерде мəліметтердің қолданушы анықтаған кластарының 
объектілерін сақтау кезінде контейнердің барлық элементтеріне кластың 
бір ғана əдісін қолдану мəселесі жиі туындайды. Кітапханада контей-
нер элементтерін қарап шығуға арналған 
for_each
алгоритмі бар. Оған 
контейнердің əрбір қаралатын элементі үшін шақырылуы тиіс функцияға 
нұсқауыш беруге болады, мысалы:
#include
linclude
using namespace std;
void show(int a){ cout << a << endl;}
int main(){
 
int m[4] = {3, 5, 9, 6};
 
for_each(m, m + 4, show); 
 return 
0;
}
Егер қарапайым жиымның орнына кез келген бір кластың объекті-
лерінен тұратын контейнерді қолданатын болсақ, онда осыған ұқсас про-
граммада 
show
функциясының орнына класс əдісінің шақырылуын жазу 
мүмкін болмайды, өйткені əдісті нақты класс объектісін көрсету арқылы 
шақыру қажет.
Əдістер адаптерлері кластардың əдістерін стандартты алгоритмдердің 
аргументтері ретінде қолдануға мүмкіндік береді. Терістеуіш пен 
байланыстырғыш сияқты, əдіс адаптері де функцияны қабылдап, одан басқа 
функция қалыптастырады. Стандартты кітапханада аргументтерінің саны 
əртүрлі болып келетін əдістер үшін бірнеше адаптер анықталған:


372
13.4-кесте. 
Кластар əдістерінің адаптерлері 
Атауы
Объектінің типі
Əрекеті
mem_fun
mem_fun_t
Нұсқауыш арқылы аргументсіз əдісті 
шақырады
mem_fun
const_mem_fun_t
Нұсқауыш арқылы аргументсіз 
тұрақтылық əдісті шақырады
mem_fun
mem_fun1_t
Нұсқауыш арқылы унарлы əдісті 
шақырады


Достарыңызбен бөлісу:
1   ...   341   342   343   344   345   346   347   348   ...   466




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

    Басты бет