Masīvu izmanto vairāku datu glabāšanai, un masīva elementu skaitu nevar mainīt izpildes laikā. Šo problēmu var atrisināt, izmantojot vektoru, kas darbojas kā dinamisks masīvs. Vektoru klasē pastāv dažādas funkcijas, lai pievienotu un noņemtu elementu no vektora. Funkcija erase () tiek izmantota, lai izpildes laikā no vektora noņemtu vienu vai vairākus elementus, kas samazina vektora lielumu. Šajā apmācībā ir izskaidrots šīs funkcijas lietojums.
Sintakse:
Tālāk ir norādīti divu veidu šīs funkcijas sintakse.
iteratora dzēšana(iteratora pozīcija);
Iepriekš minēto dzēšanas () funkciju izmanto, lai noņemtu vienu elementu no vektora, un tas atgriež iteratoru, un tas norāda uz elementu, kam seko pēdējais izdzēstais elements.
iteratora dzēšana(iteratora sākuma_pozīcija, iteratora beigu_pozīcija);
Iepriekš minēto dzēšanas () funkciju izmanto, lai noņemtu vairākus elementus no vektora, pamatojoties uz pozīciju, kas minēta šīs funkcijas pirmajā un otrajā argumentā.
Priekšnosacījums:
Pirms šīs apmācības piemēru pārbaudes jums jāpārbauda, vai g ++ kompilators ir instalēts sistēmā vai nav. Ja izmantojat Visual Studio kodu, tad instalējiet nepieciešamos paplašinājumus, lai apkopotu C ++ avota kodu, lai izveidotu izpildāmo kodu. Šeit C ++ koda apkopošanai un izpildei izmantota lietojumprogramma Visual Studio Code. Tālāk ir parādīti dažādi dzēšanas () funkcijas lietojumi, lai ievietotu elementu (-us) vektorā.
1. piemērs: noņemiet pirmo elementa elementu
Izveidojiet C ++ failu ar šādu kodu, lai noņemtu elementu no vektora sākuma. Kodā ir izmantots virkņu vērtību vektors. Vektora vērtības ir izdrukātas pirms un pēc pirmā elementa dzēšanas no vektora, izmantojot funkciju erase () ar vienu parametru.
// Iekļaut nepieciešamās bibliotēkas#iekļaut
#iekļaut
izmantojot vārda telpastundas;
// Parādiet vektora vērtības
spēkā neesošsdisplay_vector(vektors<virkne>augļi)
{
// Inicializējiet skaitītāju
intskaitītājs= 1;
// Atkārtojiet un izdrukājiet vektora elementus, izmantojot cilpu
priekš (autoviņš=augļi.sākt();viņš!=augļi.beigas();viņš++)
{
// Pārbaudiet, vai elementi ir pēdējais elements vai nē
ja(skaitītājs!=augļi.Izmērs())
izmaksas << *viņš<< ',';
citādi
izmaksas << *viņš;
// Palieliniet skaitītāju par 1
skaitītājs++;
}
izmaksas <<endl;
}
intgalvenais(spēkā neesošs) {
// Deklarēt virknes datu vektoru
vektors<virkne>augļi= { 'Apelsīns','Banāns','Mango','Džeks Frīts','Lichi' };
// Izdrukājiet esošās vektora vērtības
izmaksas << 'Vektora vērtības pirms noņemšanas:' <<endl;
display_vector(augļi);
// Noņemiet pirmo elementu no vektora
augļi.dzēst(augļi.sākt());
// Izdrukājiet esošās vektora vērtības pēc noņemšanas
izmaksas << ' nVektora vērtības pēc noņemšanas: ' <<endl;
display_vector(augļi);
atgriezties 0;
}
Izeja:
Pēc iepriekš minētā koda izpildes parādīsies šāda izvade.
2. piemērs: noņemiet vairākus elementus
Izveidojiet C ++ failu ar šādu kodu, lai noņemtu vairākus elementus no vektora, izmantojot funkciju erase (). Kodā ir izmantots veselu skaitļu vērtību vektors. Šeit ir izmantoti divi iteratori, lai iestatītu no vektora izņemto elementu diapazonu. Funkcija erase () ir izmantota ar diviem parametriem, lai noņemtu vairākus elementus no vektora.
// Iekļaut nepieciešamās bibliotēkas#iekļaut
#iekļaut
izmantojot vārda telpastundas;
// Parādīt vektoru
spēkā neesošsdisplay_vector(vektors<int>nums)
{
// Izdrukājiet vektora vērtības, izmantojot cilpu
priekš(autoviņš=nums.sākt();viņš!=nums.beigas() ;viņš++)
izmaksas << *viņš<< '';
// Pievienot jaunu rindu
izmaksas << ' n';
}
intgalvenais() {
// Vesela skaitļa datu vektora deklarēšana
vektors<int>intArray{ 678,435,960,231,800,387,634,267,409,294};
// Izdrukājiet esošās vektora vērtības
izmaksas << 'Vektora vērtības pirms noņemšanas:' <<endl;
display_vector(intArray);
// Deklarējiet divus atkārtotājus, lai noņemtu elementu diapazonu no vektora
vektors<int> :: iteratorsstartEle, endEle;
// Iestatiet iteratoru pirmajā pozīcijā
startEle=intArray.sākt();
// Palieliniet sākuma iteratoru par 2
avansu(startEle,2);
// Iestatiet iteratoru pēdējā pozīcijā
endEle=intArray.beigas();
// Samaziniet beigu atkārtotāju par 3
avansu(endEle,-3);
// Noņemiet elementu diapazonu
intArray.dzēst(startEle, endEle);
// Izdrukājiet esošās vektora vērtības pēc noņemšanas
izmaksas << ' nVektora vērtības pēc noņemšanas: ' <<endl;
display_vector(intArray);
atgriezties 0;
}
Izeja:
Pēc iepriekš minētā koda izpildes parādīsies šāda izvade. Saskaņā ar atkārtotāju diapazonu elementi no vektora 3. pozīcijas līdz 7. pozīcijai ir noņemti.
3. piemērs: noņemiet īpašos elementus
Izveidojiet C ++ failu ar šādu kodu, lai noņemtu konkrētus vektora elementus, izmantojot funkciju erase (). Kodā ir deklarēts 7 veselu skaitļu elementu vektors. Tālāk cilpa “for” ir izmantota, lai atkārtotu vektora elementus un noņemtu no vektora tos elementus, kas nav dalāmi ar 5.
// Iekļaut nepieciešamās bibliotēkas#iekļaut
#iekļaut
izmantojot vārda telpastundas;
intgalvenais()
{
// Vesela skaitļa datu vektora deklarēšana
vektors<int>numurus= { 78,Četri, pieci,67,25,98,75,52 };
izmaksas << 'Vektora vērtības pirms noņemšanas: n';
priekš (int konst &i:numurus) {
izmaksas <<i<< '';
}
izmaksas <<endl;
// Noņemiet no vektora skaitļus, kas nav dalāmi ar 5
priekš (autoviņš=numurus.sākt();viņš!=numurus.beigas();viņš++)
{
// Pārbaudiet, vai skaitlis dalās ar 5 vai nē
ja (*viņš% 5 != 0)
{
// Noņemiet elementu, pamatojoties uz iteratoru
numurus.dzēst(viņš-);
}
}
izmaksas << 'Vektora vērtības pēc noņemšanas: n';
priekš (int konst &i:numurus) {
izmaksas <<i<< '';
}
izmaksas <<endl;
atgriezties 0;
}
Izeja:
Pēc iepriekš minētā koda izpildes parādīsies šāda izvade. Rezultātā redzams, ka vektors satur tikai ar 5 dalāmus elementus un citi elementi ir noņemti.
Secinājums:
Šajā apmācībā ir parādīti dažādi erase () funkcijas izmantošanas veidi, lai noņemtu vektora elementus. C ++ ir daudzas citas funkcijas, lai noņemtu elementu no vektora, un šīs funkcijas var noņemt vienu elementu vienlaikus. Bet gan atsevišķus, gan vairākus elementus no jebkuras vektora pozīcijas var noņemt, izmantojot vektora dzēšanas () funkciju.