335
L.push_front(1);
i = L.begin();
L.insert(++i, 2);
show("Тізім басына 1 жəне 2 сандарын кірістіруден
кейін", L);
i = L.end(); L.insert(--i, l00);
show("Соңғы элементтің алдына l00 санын кірістіруден
кейін", L);
i = L.begin(); x = *i; L.pop_front();
cout << "Басынан " << x << " өшірілген" << endl;
i = L.end(); x = *--i; L.pop_back();
cout << "Соңынан " << x << " өшірілген" << endl;
show("Өшіруден кейінгі тізім:", L);
L.remove(76);
show("Мəні 76 болатын элементтерді өшіруден кейін", L);
L.sort();
show("Сұрыптаудан кейін:", L);
L.unique();
show("unique əдісінен кейін:", L);
list L1 (L);
L.reverse();
show("reverse əдісінен кейін:", L);
}
Программаның орындалу нəтижесі:
Бастапқы тізім:
56 34 54 0 76 23 51 11 51 11 76 88
Тізім басына 1 жəне 2 сандарын кірістіруден кейін:
1 2 56 34 54 0 76 23 51 11 51 11 76 88
Соңғы элементтің алдына l00 санын кірістіруден кейін:
1 2 56 34 54 0 76 23 51 11 51 11 76 100 88
Басынан 1 өшірілген
Соңынан 88 өшірілген
Өшіруден кейінгі тізім:
2 56 34 54 0 76 23 51 11 51 11 76 100
Мəні 76 болатын элементтерді өшіруден кейін:
2 56 34 54 0 23 51 11 51 11 100
Сұрыптаудан кейін:
0 2 11 11 23 34 51 51 54 56 100
unique əдісінен кейін:
0 2 11 23 34 51 54 56 100
reverse əдісінен кейін:
100 56 54 51 34 23 11 2 0
Тізімдерге «Алгоритмдер» бөлімінде сипатталған стандартты кітапхана
алгоритмдерін қолдануға болады (373 б. қараңыз).
336
Стектер (stack)
Стекте (анықтамасын «Стектер» бөлімінен, 129 б. қараңыз) оның өлшемін
өзгертетін тек екі операцияға рұқсат берілгені белгілі, олар – стектің төбесіне
элемент қосу жəне төбесінен таңдау. Стекті қарастырылған контейнерлердің
кез келгенінің – вектордың, екіжақты кезектің немесе тізімнің негізінде жүзеге
асыруға болады. Осылайша, стек контейнердің жаңа типі емес, бұрыннан бар
типінің нұсқасы болып табылады, сондықтан оны контейнердің
адаптері
деп атайды. Басқа адаптерлер (кезектер жəне басымдылықтары бар кезектер)
келесі бөлімдерде қарастырылады.
STL кітапханасында стек келісім бойынша екіжақты кезектің негізінде
анықталған:
Достарыңызбен бөлісу: