
- •3.Тіл құрамы, тіл алфавиті, түсініктемелері
- •4.Идентификаторлар.Түйінді сөздер.Тұрақтылар
- •5.Функцияларды хабарлау, анықтау. Функцияның параметрлері. Рекурсивті функция
- •6.Негізігі мәліметтер типтері.Унарлы, бинарлы, тернарлы операциялар
- •7.Программа құрылымы, Айнымалылар мен
- •8.If, switch Тармақталу операторлары.Шартты оператордың құрылымдық сұлбасы
- •9.For, do while, while циклдік операторлары
- •10. Goto, Break, continue, return басқаруды беру операторлары
- •11.Нұсқауыштар мен жиымдар.Екі өлшемді жиымдар
- •12.Қатарлар. Қатарларға қолданылатын функциялар
- •15 .Borland Builder 6.0 прграммалау ортасының бас терезесінің құрылымы
- •19.Конструкторлар.Қатарларды түрлендіру, қатардың құрамын іздеу
- •20.Деструкторлар және оның қасиеттері
- •21. Класстың достық функциялары, шаблондары
- •22.Мұрагерлік.Жай және көптік мұрагерлік
- •23.Абстрактілі класс, виртуалды функция
- •24.Ағымдар, стандартты файлдық және қатарлық ағымдар
- •25.Манипуляторлар.Жай және параметрлі манипуляторлар
- •26. Stl (Standard Template Library) кітапханасының құрылымы, итераторлар
- •27.Тізбекті контейнерлер, векторлар, кезектер
- •28.Екі жақты кезектер, стектер, тізімдер
- •29.Ассоциативті контейнерлер. Сөздіктер, жиындар
- •30.Алгоритмдер, функционалды объектілер, адаптерлер
26. Stl (Standard Template Library) кітапханасының құрылымы, итераторлар
STL (Standard Template Library) кітапханасының құрылымы негізгі компоненттерден тұрады:
контейнер (container): жадыдағы объектілер жиынтығын басқарады.
итератор (iterator): контейнерлерге енуді қамтамасыз етеді.
алгоритм (algorithm): есептеу процедурасын анықтайды.
функционалды объект (function object): басқа компоненттер қолдану үшін объектідегі функцияларды инкапсуляция жасайды.
адаптер: әр түрлі интерфейс\н қамтамасыз ету үш.компонентті бейімдейді.
Контейнер – бұл белгілі бір түрде ұйымдастырылған басқа объектілер жиынын құрайтын объект. Контейнерлер нақты типті объект коллекцияларын басқару үшін арналған. Контейнерлер мысалдары жиымдар (векторлар және ассоциативті жиымдар) және тізімдер (жекеленген тізімдер, кезектер, стектер) болып табылады. Контейнерге объектілерді қосуға болады және оларды одан жоюға болады. Контейнермен жұмыс стандартты библиотекадағы контейнерлі кластар көмегімен қолдау табады. Бұл мүмкіндік класс шаблондары арқылы жүргізіледі.
Контейнерлерді қолдану программалар сенімділігін жоғарылатуға, мүмкіндік береді.
Итератор элементке нұсқауыштың аналогы болып табылады. Ол контейнерді тура және кері бағытта қарай алады.
27.Тізбекті контейнерлер, векторлар, кезектер
STL контейнерлері тізбекті және ассоциативті деп бөлінеді. Тізбекті контейнерлер үздіксіз тізбек түріндегі бір типті объектілердің соңғы санын анықтауды қамтамасыз етеді және келесі түрлері бар: векторлар (vector); кезектер (queue ); екі жақты кезек\р(deque);тізім\р(list);стек\р(stack); приоритеттері бар кезектер (priority-queue).Тізбекті контейнер\р: вектор\р, екі жақты кезек, тізім\р.Кезек («queue») – элементтерін орналастырғанда тізімнің соңына, ал алғанда басынан алатын мәлімет\р құрылымы. Кезек қолдайтын операция\р:front – алғ. элементке ену;push_back – кезек соңына қосу;pop_front – алғашқы элементті жою; pop_back-соңғы элементті жою.
#include <iostream>
#include <queue>
using namespace std;
int main() {
queue <char> q;
q.push('a'); // кезекке элемент қосамыз
q.push('b'); // …
q.push('c'); // …
cout << q.front(); // алғашқы элементті шығару
q.pop(); //жою
cout << q.front(); // …
q.pop(); // …
cout << q.front(); // …
q.pop(); // … }
vector — C++ стандартты кітапханасының динамикалық жиымда айнымалыға мүмкіндік беретін шаблоны. Vector шаблоны <vector> тақырыптық файлында орналасқан. Егер ектор размерін өзгерту керек болса resize(n) әдісі қолданылады:
vector<int> v(20);
for(int i = 0; i < 20; i++) {
v[i] = i+1;}
v.resize(25);
for(int i = 20; i < 25; i++) {
v[i] = i*2;}
Итератордың көмегімен вектор элементтер қосындысын есептеу мысалы:
vector<int> the_vector;
vector<int>::iterator the_iterator;
for (int i=0; i < 10; i++) {
the_vector.push_back(i);}
int total = 0;
the_iterator = the_vector.begin();
while (the_iterator != the_vector.end()) {
total += *the_iterator; /* Обратите внимание, что доступ к элементу можно получить посредством разыменования итератора */
++the_iterator; cout << "нәтижесі=" << total << endl; Нәтижесі=45