Odebrání prvku: pop_back()

Opakem push_back() je metoda pop_back() (anglicky „odebrat zezadu“): odebere z vektoru poslední prvek. Do závorek nic nepíšete, závorky ale napsat musíte.

std::vector<std::string> barvy = {"modrá", "zelená", "růžová"};
barvy.pop_back();
std::cout << barvy.size() << std::endl;
std::cout << barvy[barvy.size() - 1] << std::endl;

Program vypíše:

2
zelená

Prvek "růžová" zmizel a posledním prvkem je teď "zelená".

Metoda pop_back() prvek jen odebere, nic vám nedá. Když odebraný prvek potřebujete, přečtěte si ho dřív, než ho odeberete:

std::vector<std::string> barvy = {"modrá", "zelená", "růžová"};
std::string posledniBarva = barvy[barvy.size() - 1];
barvy.pop_back();
std::cout << "Odebráno: " << posledniBarva << std::endl;
std::cout << "Zbývá: " << barvy.size() << std::endl;

Program vypíše:

Odebráno: růžová
Zbývá: 2

Když se pokusíte uložit výsledek pop_back() do proměnné, std::string posledniBarva = barvy.pop_back();, program nepůjde přeložit:

main.cpp:7:17: error: no viable conversion from 'void' to 'std::string' (aka 'basic_string<char>')

Hláška říká, že void nejde převést na std::string. void znamená „nic“: pop_back() žádnou hodnotu nedává, a tak není co uložit do proměnné. Se slovem void se znovu setkáte v lekci o funkcích.

Z prázdného vektoru nic neodebírejte. Odebrat není co a program se pak může chovat nepředvídatelně, stejně jako při indexu mimo vektor.

Pokyny

Evin projekt skončil a Eva z týmu odchází. Uložte posledního spolupracovníka do proměnné typu std::string s názvem odchazejici (index spočítejte pomocí size() - 1). Potom ho z vektoru spolupracovnici odeberte pomocí pop_back().

Pod sebe vypište, kdo odchází a kolik spolupracovníků zbývá. Ve výpisu by se měly objevit řádky Odchází: Eva a Zbývá: 3.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

7/10