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



Pdf көрінісі
бет294/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   290   291   292   293   294   295   296   297   ...   466
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   ...   290   291   292   293   294   295   296   297   ...   466




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

    Басты бет