Velikost vektoru lze zmenšit použitím různých vestavěných funkcí C++. Funkce pop_back() je jednou z nich. Používá se k odstranění posledního prvku vektoru zezadu a zmenšení velikosti vektoru o 1. Poslední prvek vektoru však není odstraněn trvale jako funkce erase(). Různá použití této funkce byla vysvětlena v tomto tutoriálu.
Syntax:
vektor :: pop_back ( ) ;Tato funkce nemá žádný argument a nic nevrací.
Předpoklad:
Před kontrolou příkladů tohoto tutoriálu musíte zkontrolovat, zda je kompilátor g++ nainstalován nebo není v systému. Pokud používáte Visual Studio Code, nainstalujte potřebná rozšíření pro kompilaci zdrojového kódu C++ za účelem vytvoření spustitelného kódu. Zde byla ke kompilaci a spuštění kódu C++ použita aplikace Visual Studio Code. Způsoby, jak zmenšit velikost vektoru pomocí funkce pop_back() jsou ukázány v další části tohoto tutoriálu.
Příklad-1: Odstraňte z vektoru více prvků
Vytvořte soubor C++ s následujícím kódem pro odstranění dvou prvků z vektorového kontejneru zmenšením velikosti vektoru pomocí funkce pop_back(). V kódu byl deklarován vektor 5 řetězcových hodnot. Funkce pop_back() zde byla volána dvakrát, aby dočasně odstranila dva poslední prvky z vektoru a zmenšila velikost vektoru o 2. Obsah vektoru byl vytištěn dvakrát před a po použití funkce pop_back().
//Zahrňte potřebné knihovny
#include
#include
použitím jmenný prostor std ;
int hlavní ( ) {
//Deklaruje vektor řetězcových hodnot
vektor < tětiva > květiny = { 'Růže' , 'Lity' , 'Měsíček' , 'Tulipán' , 'Vodní lev' } ;
cout << 'Hodnoty vektoru: \n ' ;
//Opakujte vektor pomocí smyčky pro tisk hodnot
pro ( int i = 0 ; i < květiny. velikost ( ) ; ++ i )
cout << květiny [ i ] << '' ;
cout << ' \n ' ;
//Odstranění posledních dvou hodnot z vektoru
květiny. pop_back ( ) ;
květiny. pop_back ( ) ;
cout << ' \n Hodnoty vektoru po odstranění: \n ' ;
//Opakujte vektor pomocí smyčky pro tisk hodnot
pro ( int i = 0 ; i < květiny. velikost ( ) ; ++ i )
cout << květiny [ i ] << '' ;
cout << ' \n ' ;
vrátit se 0 ;
}
Výstup:
Po provedení výše uvedeného kódu se objeví následující výstup.
Příklad-2: Vytvořte nový vektor z jiného vektoru
Vytvořte soubor C++ s následujícím kódem pro vložení konkrétních hodnot do prázdného vektoru z jiného vektoru odstraněním prvků pomocí funkce pop_back(). V kódu byl deklarován vektor 8 celých čísel a prázdný vektor typu integer. Smyčka ‚while‘ byla použita k iteraci každého prvku prvního vektoru a vložení prvku do nového vektoru, pokud je číslo dělitelné 2. Zde byl také vypočten součet všech sudých čísel. Každý prvek prvního vektoru bude odstraněn funkcí pop_back() v každé iteraci smyčky, aby se dosáhlo podmínky ukončení smyčky.
//Zahrňte potřebné knihovny
#include
#include
použitím jmenný prostor std ;
int hlavní ( )
{
//Deklaruje vektor celočíselných dat
vektor < int > intVector { 5 , 9 , 4 , 7 , 2 , 8 , 1 , 3 } ;
//Deklarujte prázdný vektor
vektor < int > novýVektor ;
cout << 'Hodnoty původního vektoru: \n ' ;
//Opakujte vektor pomocí smyčky pro tisk hodnot
pro ( int i = 0 ; i < intVector. velikost ( ) ; ++ i )
cout << intVector [ i ] << '' ;
cout << ' \n ' ;
//Inicializovat výsledek
int výsledek = 0 ;
//Opakujte smyčku, dokud nebude vektor prázdný
zatímco ( ! intVector. prázdný ( ) )
{
/*
Zjistěte sudá čísla, která chcete vložit do nového vektoru
a vypočítat součet sudých čísel
*/
-li ( intVector. zadní ( ) % 2 == 0 )
{
výsledek + = intVector. zadní ( ) ;
novýVektor. zatlačit zpátky ( intVector. zadní ( ) ) ;
}
//Odstranění prvku z konce intVactor
intVector. pop_back ( ) ;
}
cout << 'Hodnoty nového vektoru: \n ' ;
//Opakujte vektor pomocí smyčky pro tisk hodnot
pro ( int i = 0 ; i < novýVektor. velikost ( ) ; ++ i )
cout << novýVektor [ i ] << '' ;
cout << ' \n ' ;
cout << 'Součet všech sudých čísel:' << výsledek << ' \n ' ;
vrátit se 0 ;
}
Výstup:
Po provedení výše uvedeného kódu se objeví následující výstup. V prvním vektoru byla tři sudá čísla. Je jich 8, 2 a 4.
Příklad-3: Zkontrolujte, zda je nebo není odstraněn poslední prvek vektoru
Již dříve bylo zmíněno, že pop_back() neodstraní prvky trvale z vektoru a odstraní prvek pouze zmenšením velikosti vektoru. Odebraný prvek tedy zůstane na stejné pozici, dokud se velikost vektoru nezvětší a nenahradí prvek jiným prvkem. Vytvořte soubor C++ s následujícím kódem a zkontrolujte, zda prvek odstraněný funkcí pop_back() existuje nebo ne. Poslední pozice původního vektoru byla vytištěna před a po použití funkce pop_back().
#include#include
použitím jmenný prostor std ;
int hlavní ( )
{
//Deklaruje vektor celočíselných dat
vektor < int > intVector { 54 , 19 , 46 , 72 , 22 , 83 , 10 , 53 } ;
//Deklarujte prázdný vektor
vektor < int > novýVektor ;
//Deklaruje celočíselnou proměnnou
int délka ;
//Vytiskne poslední prvek na základě velikosti vektoru
délka = intVector. velikost ( ) ;
cout << 'Aktuální velikost vektoru:' << délka << ' \n ' ;
cout << 'Poslední hodnota vektoru před odstraněním:' << intVector [ délka - 1 ] << ' \n ' ;
//Odstranění prvku z konce vektoru
intVector. pop_back ( ) ;
//Po odstranění vytiskne poslední prvek na základě velikosti vektoru
délka = intVector. velikost ( ) ;
cout << 'Aktuální velikost vektoru:' << délka << ' \n ' ;
cout << 'Poslední hodnota vektoru po odstranění:' << intVector [ délka ] << ' \n ' ;
vrátit se 0 ;
}
Výstup:
Po provedení výše uvedeného kódu se objeví následující výstup. Výstup ukazuje, že velikost vektoru je zmenšena o 1, ale prvek poslední pozice původního vektoru stále existuje.
Závěr:
V tomto tutoriálu byla na jednoduchých příkladech popsána tři různá použití funkce pop_back(). Hlavní účel použití této funkce bude čtenářům objasněn po procvičení příkladů z tohoto tutoriálu.