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++
) осыдан
кейін итератор контейнердің қарап шығу реттілігіндегі келесі элементіне
нұсқайтындай етіп жүзеге асырылған. Вектор элементіне қол жеткізу
қарапайым нұсқауыштардағы сияқты, адрессіздендіру операциясының
көмегімен орындалады.
Бұл берілген мысалда
Достарыңызбен бөлісу: |