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) өрнегіне эквивалентті;
Векторлар үшін
==
,
!=
,
<
,
Достарыңызбен бөлісу: