Massiivi kasutatakse mitmete andmete salvestamiseks ja massiivi elementide arvu ei saa käitusajal muuta. Selle probleemi saab lahendada, kasutades vektorit, mis töötab nagu dünaamiline massiiv. Vektoriklassis on erinevaid funktsioone elemendi lisamiseks ja eemaldamiseks vektorist. Funktsiooni erase () kasutatakse ühe või mitme elemendi eemaldamiseks vektorist käitusajal, mis vähendab vektori suurust. Selle õpetuse kasutusviise on selgitatud.
Süntaks:
Allpool on toodud selle funktsiooni kahte tüüpi süntaks.
iteraatori kustutamine(iteraatori asend);
Ülaltoodud erase () funktsiooni kasutatakse ühe elemendi eemaldamiseks vektorist ja see tagastab iteraatori ning osutab elemendile, millele järgneb viimati kustutatud element.
iteraatori kustutamine(iteraatori alguspositsioon, iteraatori lõppseis);
Ülaltoodud kustutamisfunktsiooni () kasutatakse mitmete elementide eemaldamiseks vektorist, lähtudes selle funktsiooni esimeses ja teises argumendis mainitud positsioonist.
Eeltingimus:
Enne selle õpetuse näidete kontrollimist peate kontrollima, kas kompilaator g ++ on süsteemi installitud või mitte. Kui kasutate Visual Studio koodi, installige käivitatava koodi loomiseks vajalikud laiendused C ++ lähtekoodi kompileerimiseks. Siin on C ++ koodi kompileerimiseks ja käivitamiseks kasutatud rakendust Visual Studio Code. Funktsiooni erase () erinevaid kasutusviise elemendi (de) sisestamiseks vektorisse on näidatud allpool.
Näide-1: eemaldage esimene elemendi element
Loo C ++ fail järgmise koodiga, et eemaldada element vektori algusest. Koodis on kasutatud stringiväärtuste vektorit. Vektori väärtused on trükitud enne ja pärast esimese elemendi kustutamist vektorist, kasutades ühe parameetriga funktsiooni erase ().
// Kaasa vajalikud teegid#kaasake
#kaasake
kasutades nimeruumtundi;
// Vektori väärtuste kuvamine
tühinedisplay_vector(vektor<string>puuviljad)
{
// Vormista loendur
intloendur= 1;
// Iterate ja printige vektori elemente silmuse abil
eest (autotema=puuviljad.alustada();tema!=puuviljad.lõpp();tema++)
{
// Kontrollige, kas elemendid on viimane element või mitte
kui(loendur!=puuviljad.suurus())
maksma << *tema<< ',';
muidu
maksma << *tema;
// Suurendage loendurit 1 võrra
loendur++;
}
maksma <<endl;
}
intpeamine(tühine) {
// Stringiandmete vektori deklareerimine
vektor<string>puuviljad= { 'Oranž','Banaan','Mango','Jack Fruit','Lichi' };
// Prindi vektori olemasolevad väärtused
maksma << 'Vektori väärtused enne eemaldamist:' <<endl;
display_vector(puuviljad);
// Eemaldage vektorist esimene element
puuviljad.kustutada(puuviljad.alustada());
// Prindi pärast eemaldamist vektori olemasolevad väärtused
maksma << ' nVektori väärtused pärast eemaldamist: ' <<endl;
display_vector(puuviljad);
tagasi 0;
}
Väljund:
Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund.
Näide-2: eemaldage mitu elementi
Looge järgmise koodiga C ++ -fail, et eemaldada mitu elementi vektorist, kasutades funktsiooni erase (). Koodis on kasutatud täisarvuliste väärtuste vektorit. Vektorist eemaldatud elementide vahemiku määramiseks on siin kasutatud kahte iteraatorit. Funktsiooni erase () on kasutatud kahe parameetriga, et eemaldada vektorist mitu elementi.
// Kaasa vajalikud teegid#kaasake
#kaasake
kasutades nimeruumtundi;
// Kuva vektor
tühinedisplay_vector(vektor<int>nums)
{
// Printige vektori väärtused silmuse abil
eest(autotema=nums.alustada();tema!=nums.lõpp() ;tema++)
maksma << *tema<< '';
// Lisa uus rida
maksma << ' n';
}
intpeamine() {
// Täisarvuliste andmete vektori deklareerimine
vektor<int>intArray{ 678,435,960,231,800,387,634,267,409,294};
// Prindi vektori olemasolevad väärtused
maksma << 'Vektori väärtused enne eemaldamist:' <<endl;
display_vector(intArray);
// Deklareerige kaks iteraatorit, et eemaldada vektorist elementide vahemik
vektor<int> :: iteraatorstartEle, endEle;
// Seadke iteraator esimesse asendisse
startEle=intArray.alustada();
// Suurendage algus iteraatorit 2 võrra
ette(startEle,2);
// Seadke iteraator viimasele positsioonile
endEle=intArray.lõpp();
// Vähendage lõppevat iteraatorit 3 võrra
ette(endEle,-3);
// Eemalda valik elemente
intArray.kustutada(startEle, endEle);
// Prindi pärast eemaldamist vektori olemasolevad väärtused
maksma << ' nVektori väärtused pärast eemaldamist: ' <<endl;
display_vector(intArray);
tagasi 0;
}
Väljund:
Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Vastavalt iteraatorite vahemikule on elemendid eemaldatud vektori 3. positsioonist kuni 7. positsiooni.
Näide-3: eemaldage konkreetsed elemendid
Looge järgmise koodiga C ++ fail, et eemaldada vektori spetsiifilised elemendid, kasutades funktsiooni erase (). Koodis on deklareeritud 7 täisarvulise elemendiga vektor. Järgmisena on tsükkel „for” kasutanud vektorielementide iteratsiooni ja eemaldanud vektorist need elemendid, mis ei ole jagatavad 5 -ga.
// Kaasa vajalikud teegid#kaasake
#kaasake
kasutades nimeruumtundi;
intpeamine()
{
// Täisarvuliste andmete vektori deklareerimine
vektor<int>numbrid= { 78,Neli, viis,67,25,98,75,52 };
maksma << 'Vektori väärtused enne eemaldamist: n';
eest (int const &i:numbrid) {
maksma <<i<< '';
}
maksma <<endl;
// Eemaldage vektorist need numbrid, mis ei jagu 5 -ga
eest (autotema=numbrid.alustada();tema!=numbrid.lõpp();tema++)
{
// Kontrollige, kas arv jagub 5 -ga või mitte
kui (*tema% 5 != 0)
{
// Eemalda element iteraatori põhjal
numbrid.kustutada(tema-);
}
}
maksma << 'Vektori väärtused pärast eemaldamist: n';
eest (int const &i:numbrid) {
maksma <<i<< '';
}
maksma <<endl;
tagasi 0;
}
Väljund:
Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Väljund näitab, et vektor sisaldab ainult 5 -ga jagatavaid elemente ja muud elemendid on eemaldatud.
Järeldus:
Selles juhendis on vektori elementide eemaldamiseks näidatud funktsiooni erase () erinevaid kasutusviise. C ++ -l on palju muid funktsioone elemendi eemaldamiseks vektorist ja need funktsioonid võivad eemaldada ühe elemendi korraga. Kuid vektori kustutamise () funktsiooni abil saab eemaldada nii üksikuid kui ka mitu elementi vektori mis tahes asukohast.