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



Pdf көрінісі
бет444/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   440   441   442   443   444   445   446   447   ...   642
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   ...   440   441   442   443   444   445   446   447   ...   642




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

    Басты бет