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



Pdf көрінісі
бет344/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   340   341   342   343   344   345   346   347   ...   465
Байланысты:
аибм сплюс

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   ...   340   341   342   343   344   345   346   347   ...   465




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

    Басты бет