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



Pdf көрінісі
бет300/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   296   297   298   299   300   301   302   303   ...   466
int m[3] = {3, 4, 5};
v.insert(v.begin(), m, m + 3); // v құрамы: 3 4 5 0 0
v1.insert(v1.begin() + 1, v.begin(), v.begin() + 2);
// v1 құрамы: 9 3 4 9 9


327
Векторға элемент кірістіруге жаңа позицияға ығыстырылатын 
элементтердің санына пропорционал уақыт кетеді. Бұл кезде вектордың жаңа 
өлшемі бұрынғы алып тұрған жады көлемінен артық болса, жадыны қайта 
бөлу орындалады. Бұл – индекс бойынша қол жеткізу жеңілдігінің құны. Егер 
кірістіру кезінде жадыны қайта бөлу орындалмаса, онда барлық итераторлар 
өздерінің мəндерін сақтайды. Кері жағдайда олар жарамсыз болып қалады.
erase
 
функциясы вектордың бір элементін жою үшін (функцияның бірінші 
формасы) немесе итераторлар көмегімен берілген диапазонын (екінші форма) 
жою үшін қолданылады:
vector v;
for (int i = 1; i<6; i++) v.push_back(i);
// v құрамы: 1 2 3 4 5
v.erase(v.begin()); // v құрамы: 2 3 4 5
v.erase(v.begin(), v.begin() + 2); // v құрамы: 4 5
Мұнда үшінші параметр арқылы соңғы жойылатын элемент емес, одан 
кейін орналасқан элемент берілетініне назар аударыңыз. 
Кірістіру кезіндегі сияқты, 
erase
функциясының əрбір шақырылуы жаңа 
позицияға ығыстырылып жылжытылатын элементтердің санына пропорци-
онал уақытты қажет етеді. Жою орнынан «оңға қарай» орналасқан барлық 
сілтемелер мен итераторлар жарамсыз болып қалады.
swap
функциясы типтері бірдей, бірақ өлшемдері бірдей бола бермейтін 
(ол міндетті емес) екі вектор элементтерін алмастыру үшін қолданылады:
vector vl, v2;
...
v1.swap(v2); // v2.swap(v1) өрнегіне эквивалентті;
Векторлар үшін 
==

!=

<



Достарыңызбен бөлісу:
1   ...   296   297   298   299   300   301   302   303   ...   466




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

    Басты бет