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


fl ip ) терістеу (инвертирлеу) əдістері анықталған.  Логикалық мəндер векторының элементіне сілтеуіш  reference



Pdf көрінісі
бет302/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   298   299   300   301   302   303   304   305   ...   466
fl ip
) терістеу (инвертирлеу) əдістері анықталған. 
Логикалық мəндер векторының элементіне сілтеуіш 
reference
класы 
түрінде жүзеге асырылған, ол элементке қарапайым сілтемені модельдейді:
class reference{
friend class vector;
reference(); 
 public:
 
~reference();
 
operator bool() const;
 
reference& operator=(const bool x);
 
reference& operator=(const reference& x);
 
void fl ip(); 
};
Мысал (пернетақтадан векторға 0 немесе 1 болатын 10 мəн енгізіледі, со-
дан кейін олар экранға шығарылады).
#include  
#include  
using namespace std; 
vector v (10); 
int main(){


329
 
for(int i = 0; i> v[i];
 
for (vector :: const_iterator p = v.begin(); 
 p!=v.end(); 
++p) 
 
cout << *p;
}
Екіжақты кезектер (deque)
Екіжақты кезек – вектормен қатар, элементтерге кездейсоқ қол жеткізуді 
сүйемелдейтін жəне тұрақты уақыт ішінде кезектің екі жағынан да элементтерді 
кірістіру мен жоюды қамтамасыз ететін тізбекті контейнер. Кезектің ішіндегі 
элементтермен орындалатын осындай операциялар орны ауыстырылатын эле-
менттер санына пропорционал уақыт алады. Мұнда жадыны бөлу автоматты 
түрде орындалады.
Кезекті ұйымдастыру схемасын қарастырайық (12.1-сурет). Элементтеріне 
тұрақты уақыт ішінде кездейсоқ түрде қол жеткізуді қамтамасыз ету үшін 
кезек блоктарға бөлінген, олардың əрқайсысына қол жеткізу нұсқауыш 
арқылы жүзеге асырылады. Суреттегі боялған аймақтар кезектің бос емес 
элементтерін көрсетеді. Егер басына немесе соңына элементті қосу кезінде 
блок толып кетсе, келесі блокқа жады бөлінеді (мысалы, 4-блок толған соң 
5 -блокқа, ал 2-блок толған соң 1-блокқа жады бөлінеді). Блоктардың ішіндегі 
шеткісін толтырған кезде тек ортаңғы элементтер қолданылатындай түрде 
нұсқауыштар жиымына жады қайта үлестіріледі. Ол көп уақыт алмайды. Осы-
лайша, кезек элементтеріне қол жеткізу тұрақты уақыт кезеңінде орындалады, 
алайда бұл уақыт векторға қарағанда көбірек болады.
12.1-сурет. 
Екіжақты кезектің ұйымдастырылуы
Екіжақты кезекті құру үшін вектор конструкторларына ұқсайтын келесі 
конструкторларды қолдануға болады (қарапайым жазба түрі келтірілген):
22-1140




Достарыңызбен бөлісу:
1   ...   298   299   300   301   302   303   304   305   ...   466




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

    Басты бет