Veľkosť vektora je možné zmenšiť použitím rôznych vstavaných funkcií C++. Jednou z nich je funkcia pop_back(). Používa sa na odstránenie posledného prvku vektora zozadu a zmenšenie veľkosti vektora o 1. Posledný prvok vektora však nie je odstránený natrvalo ako funkcia erase(). Rôzne použitia tejto funkcie boli vysvetlené v tomto návode.
Syntax:
vektor :: pop_back ( ) ;Táto funkcia nemá žiadny argument a nič nevracia.
Predpoklad:
Pred skontrolovaním príkladov tohto tutoriálu musíte skontrolovať, či je v systéme nainštalovaný kompilátor g++ alebo nie. Ak používate Visual Studio Code, nainštalujte potrebné rozšírenia na kompiláciu zdrojového kódu C++ na vytvorenie spustiteľného kódu. Tu sa na kompiláciu a spustenie kódu C++ použila aplikácia Visual Studio Code. Spôsoby, ako zmenšiť veľkosť vektora pomocou funkcie pop_back() sú uvedené v ďalšej časti tohto návodu.
Príklad-1: Odstráňte viacero prvkov z vektora
Vytvorte súbor C++ s nasledujúcim kódom na odstránenie dvoch prvkov z kontajnera vektorov zmenšením veľkosti vektora pomocou funkcie pop_back(). V kóde bol deklarovaný vektor 5 hodnôt reťazca. Funkcia pop_back() tu bola volaná dvakrát na dočasné odstránenie dvoch posledných prvkov z vektora a zmenšenie veľkosti vektora o 2. Obsah vektora bol vytlačený dvakrát pred a po použití funkcie pop_back().
//Zahrňte potrebné knižnice
#include
#include
použitím menný priestor std ;
int Hlavná ( ) {
//Deklarovanie vektora reťazcových hodnôt
vektor < reťazec > kvety = { 'ruža' , 'Lity' , 'nechtík' , 'tulipán' , 'Vodný lev' } ;
cout << 'Hodnoty vektora: \n ' ;
//Opakujte vektor pomocou slučky na tlač hodnôt
pre ( int i = 0 ; i < kvety. veľkosť ( ) ; ++ i )
cout << kvety [ i ] << '' ;
cout << ' \n ' ;
//Odstránenie posledných dvoch hodnôt z vektora
kvety. pop_back ( ) ;
kvety. pop_back ( ) ;
cout << ' \n Hodnoty vektora po odstránení: \n ' ;
//Opakujte vektor pomocou slučky na tlač hodnôt
pre ( int i = 0 ; i < kvety. veľkosť ( ) ; ++ i )
cout << kvety [ i ] << '' ;
cout << ' \n ' ;
vrátiť 0 ;
}
Výkon:
Po vykonaní vyššie uvedeného kódu sa zobrazí nasledujúci výstup.
Príklad-2: Vytvorte nový vektor z iného vektora
Vytvorte súbor C++ s nasledujúcim kódom na vloženie konkrétnych hodnôt do prázdneho vektora z iného vektora odstránením prvkov pomocou funkcie pop_back(). V kóde bol deklarovaný vektor 8 celých čísel a prázdny vektor celočíselného typu. Slučka „while“ sa použila na iteráciu každého prvku prvého vektora a vloženie prvku do nového vektora, ak je číslo deliteľné 2. Tu bol vypočítaný aj súčet všetkých párnych čísel. Každý prvok prvého vektora bude odstránený funkciou pop_back() v každej iterácii cyklu, aby sa dosiahla podmienka ukončenia cyklu.
//Zahrňte potrebné knižnice
#include
#include
použitím menný priestor std ;
int Hlavná ( )
{
//Deklarovanie vektora celočíselných údajov
vektor < int > intVector { 5 , 9 , 4 , 7 , 2 , 8 , 1 , 3 } ;
//Vyhlásenie prázdneho vektora
vektor < int > novýVektor ;
cout << 'Hodnoty pôvodného vektora: \n ' ;
//Opakujte vektor pomocou slučky na tlač hodnôt
pre ( int i = 0 ; i < intVector. veľkosť ( ) ; ++ i )
cout << intVector [ i ] << '' ;
cout << ' \n ' ;
//Inicializácia výsledku
int výsledok = 0 ;
//Opakujte cyklus, kým nebude vektor prázdny
zatiaľ čo ( ! intVector. prázdny ( ) )
{
/*
Zistite párne čísla, ktoré chcete vložiť do nového vektora
a vypočítajte súčet párnych čísel
*/
ak ( intVector. späť ( ) % 2 == 0 )
{
výsledok + = intVector. späť ( ) ;
novýVektor. push_back ( intVector. späť ( ) ) ;
}
//Odstránenie prvku z konca intVactor
intVector. pop_back ( ) ;
}
cout << 'Hodnoty nového vektora: \n ' ;
//Opakujte vektor pomocou slučky na tlač hodnôt
pre ( int i = 0 ; i < novýVektor. veľkosť ( ) ; ++ i )
cout << novýVektor [ i ] << '' ;
cout << ' \n ' ;
cout << 'Súčet všetkých párnych čísel:' << výsledok << ' \n ' ;
vrátiť 0 ;
}
Výkon:
Po vykonaní vyššie uvedeného kódu sa zobrazí nasledujúci výstup. V prvom vektore boli tri párne čísla. Je ich 8, 2 a 4.
Príklad-3: Skontrolujte, či je alebo nie je odstránený posledný prvok vektora
Už bolo spomenuté, že pop_back() neodstraňuje prvky z vektora natrvalo a odstraňuje prvok iba zmenšením veľkosti vektora. Odstránený prvok teda zostane na rovnakej pozícii, kým sa nezväčší veľkosť vektora a nenahradí prvok iným prvkom. Vytvorte súbor C++ s nasledujúcim kódom, aby ste skontrolovali, či prvok odstránený funkciou pop_back() existuje alebo nie. Posledná pozícia pôvodného vektora bola vytlačená pred a po použití funkcie pop_back().
#include#include
použitím menný priestor std ;
int Hlavná ( )
{
//Deklarovanie vektora celočíselných údajov
vektor < int > intVector { 54 , 19 , 46 , 72 , 22 , 83 , 10 , 53 } ;
//Vyhlásenie prázdneho vektora
vektor < int > novýVektor ;
//Deklarovanie celočíselnej premennej
int dĺžka ;
//Vytlačí posledný prvok na základe veľkosti vektora
dĺžka = intVector. veľkosť ( ) ;
cout << 'Aktuálna veľkosť vektora:' << dĺžka << ' \n ' ;
cout << 'Posledná hodnota vektora pred odstránením:' << intVector [ dĺžka - 1 ] << ' \n ' ;
//Odstránenie prvku z konca vektora
intVector. pop_back ( ) ;
//Po odstránení vytlačí posledný prvok na základe veľkosti vektora
dĺžka = intVector. veľkosť ( ) ;
cout << 'Aktuálna veľkosť vektora:' << dĺžka << ' \n ' ;
cout << 'Posledná hodnota vektora po odstránení:' << intVector [ dĺžka ] << ' \n ' ;
vrátiť 0 ;
}
Výkon:
Po vykonaní vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Výstup ukazuje, že veľkosť vektora je zmenšená o 1, ale prvok poslednej pozície pôvodného vektora stále existuje.
Záver:
V tomto návode boli na jednoduchých príkladoch popísané tri rôzne použitia funkcie pop_back(). Hlavný účel použitia tejto funkcie bude čitateľom objasnený po precvičení príkladov z tohto návodu.