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



Pdf көрінісі
бет293/465
Дата23.05.2022
өлшемі3.66 Mb.
#458577
түріПрограмма
1   ...   289   290   291   292   293   294   295   296   ...   465
pavlovskaia-jogargy-dengeili

322
while ( in >> x, !in.eof()) 
 
v.push_back(x);
 
for (vector::iterator i = v.begin(); 
 
i != v.end(); ++i) 
 
cout << *i << " ";
}
Файл құрамында бүтін сандар болғандықтан
vector
шаблонының соған 
сəйкес специализациясы – 
vector
қолданылады. 
V
 
векторын құру үшін 
келсім бойынша берілген конструктор қолданылады. Файл соңына дейін 
цикл ұйымдастырылады да, онда файлдан кезекті бүтін сан оқылады. Ол сан 
push_back
əдісінің көмегімен векторға енгізіледі, вектор өлшемі автоматты 
түрде өзгереді
1
.
Вектор бойымен оны толық қарап шығу үшін соған сəйкес типтің ите-
раторы ретінде 
i
айнымалысы енгізіледі (
::
операциясы көріну аймағына 
қол жеткізуді білдіретінін еске салайық, яғни бұл жерде «шаблонның 
нақты специализациясына арналған итератор» типті 
i
айнымалысы жари-
яланады). Осы итератордың көмегімен контейнердің барлық элементтеріне 
біріншісінен бастап рет-ретімен қол жеткізу орындалады. 
begin()
əдісі 
нұсқауышты бірініші элементке, ал 
end()
əдісі соңғыдан кейінгі элемент-
ке қайтарады. Жүзеге асыру жолы бұл нұсқауыштың анықталғандығына 
кепілдік береді. 
Ағымдағы мəнді шекаралық мəнмен салыстыруды 
!=
операциясының 
көмегімен орындаған дұрыс, себебі 
<
немесе 
<=
операциялары берілген 
тип үшін анықталмауы мүмкін. Инкремент операциясы (
i++
) осыдан 
кейін итератор контейнердің қарап шығу реттілігіндегі келесі элементіне 
нұсқайтындай етіп жүзеге асырылған. Вектор элементіне қол жеткізу 
қарапайым нұсқауыштардағы сияқты, адрессіздендіру операциясының 
көмегімен орындалады. 
Бұл берілген мысалда 


Достарыңызбен бөлісу:
1   ...   289   290   291   292   293   294   295   296   ...   465




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

    Басты бет