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



Pdf көрінісі
бет297/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   293   294   295   296   297   298   299   300   ...   465
Байланысты:
аибм сплюс

front
жəне 
back
əдістері сəйкесінше вектордың алғашқы жəне 
соңғы элементтеріне сілтемелер қайтарады (бұл 
begin
мен 
end
функцияла-
рымен бірдей емес
begin
– алғашқы элементке нұсқауыш жəне 
end
– соңғы 
элементтен кейінгі элементке нұсқауыш). Мысал:
vector v(5, 10):
v.front() = 100; v.back() = 100;
cout << v[0] << " " << v[v.size() - 1];
// Нəтиже: 100 100 
Вектор орналасатын жедел жады көлемін 
capacity
функциясы анықтайды:
size_type capacity() const;
Векторға жады динамикалық түрде бөлінеді, бірақ əрбір уақыт мезетінде 
бір элементке емес (бұл ресурсты артық жұмсау болып табылар еді), бірден 
элементтер тобына бөлінеді, мысалы 256 немесе 1024. Жадыны қайта бөлу 
элементтердің осы саннан артып кетуі кезінде ғана орындалады, мұндайда 
бөлінген кеңістік көлемі екі еселенеді. Жады қайта бөлінгеннен кейін вектор 
элементтеріне сілтеме жасайтын кез келген итераторлар жарамсыз болып та-
былады, өйткені вектор жадының басқа бөлігіне ауыстырылуы мүмкін жəне 
онымен байланысқан сілтемелер автоматты түрде жаңартылады деп күтудің 
қажеті жоқ. 
Сонымен қатар, жадыны бөлетін 
reserve
функциясы бар, ол векторды 
сақтау үшін жадының қажетті көлемін тағайындауға мүмкіндік береді:
void reserve(size_type n); 


326
Функцияны қолдану мысалы:
vector v;
v.reserve(1000); // 1000 элементке жады бөлу
Осы функция орындалғаннан кейін 
capacity
функциясының мəні 
кемінде 
n
шамасына тең болады. Қарастырылған 
reserve 
функциясын 
вектордың өлшемі алдын ала белгілі болған кезде ғана қолдану тиімді болып 
саналады. 
Вектордың өлшемдерін өзгерту үшін 


Достарыңызбен бөлісу:
1   ...   293   294   295   296   297   298   299   300   ...   465




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

    Басты бет