Vektora dzēšanas () funkcija C ++

Vector Erase Function C



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.