333
cout << endl;
i = L1.begin(); i++;
k = L1.end();
j = --k; k++; j--;
L1.splice( i, L1, j, k);
cout << "Тіркестіруден кейінгі тізім: ";
for ( i = L1.begin(); i != L1.end(); ++i)
cout << *i << " ";
}
Программаның жұмыс істеу нəтижесі:
Бастапқы тізім: 1 2 3 4 5 12 13
Тіркестіруден кейінгі тізім: 1 12 13 2 3 4 5
Тасымалданған элементтер қаралайтылған қаріппен ерекшеленген.
Тізімдер итераторлары үшін қосу жəне азайту операциялары анықталмағанына
назар аударыңыздар, яғни
j = k
– 1
деп жазуға болмайды, сондықтан тізімдер
итераторлары үшін рұқсат етілген инкремент жəне декремент операцияларын
қолдануға тура келді. Жалпы жағдайда тізімнен элементті іздеу үшін
fi nd
функциясы қолданылады (376 б. қара).
Элементті мəні бойынша
жою үшін
remove
функциясы қолданылады:
void remove(const T& value);
Егер тізімде
value
мəнді бірнеше элемент бар болса, онда олардың
барлығы да жойылады.
Тізімнен белгілі бір шартты қанағаттандыратын элементтерді жоюға бола-
ды. Ол үшін
remove_if
функциясы қолданылады:
template void remove_if(Predicate pred);
Параметр ретінде тізімнің элементіне қойлатын шартты тағайындайтын
класс-предикат алынады. Предикаттар туралы 365 б. қараңыз.
Тізім элменттерін реттеу үшін
sort
əдісі қолданылады:
void sort();
template void sort(Compare comp);
Бірінші жағдайда тізім элементтердің өсу ретімен (элементтер үшін
<
операциясының анықтамасына сəйкес) сұрыпталып, екінші жағдайда
Compare
функционалды объектісіне сəйкес сұрыпталады (функционалды объектілер ту-
ралы 211 б. «Функцияны шақыру операциясының асыра жүктелуі» бөлімінде
жазылған). Егер функционалды объектіге берілетін екі мəн сұрыпталу кезінде
бұрынғы ретімен қалуы керек болса, онда оның мəні
Достарыңызбен бөлісу: