std::string::push_back în C++

push_back adaugă un caracter la final; pop_back șterge ultimul caracter.

Sintaxă
void push_back(char c);
void pop_back();

Ce face std::string::push_back

push_back(c) adaugă un singur caracter la sfârșitul șirului (la fel ca s += c). pop_back() șterge ultimul caracter (C++11).

„Caracter” înseamnă aici un octet. Pe un text care se termină cu o literă cu diacritice, pop_back() șterge doar a doua jumătate a ei și lasă un text UTF-8 stricat.

Parametri

Parametru Descriere
c Caracterul adăugat.

Ce returnează

Nimic.

Exemple

Exemplul 1: Construirea unui cod caracter cu caracter

#include <iostream>
#include <string>

int main() {
    std::string cod;
    for (char c = 'A'; c <= 'E'; ++c) {
        cod.push_back(c);
        cod.push_back('-');
    }
    std::cout << cod << '\n';
    cod.pop_back();   // scoatem ultima cratimă
    std::cout << cod << '\n';
}

Rezultat

A-B-C-D-E-
A-B-C-D-E

Exemplul 2: Ștergerea virgulei de la final

#include <iostream>
#include <string>

int main() {
    std::string lista;
    for (int nota : {9, 7, 10}) {
        lista += std::to_string(nota);
        lista.push_back(',');
    }
    if (!lista.empty()) lista.pop_back();
    std::cout << "[" << lista << "]\n";
}

Rezultat

[9,7,10]

Greșeli frecvente

  • Apelezi pop_back() pe un șir gol: comportament nedefinit. Verifică empty() înainte.
  • Folosești pop_back() pe un cuvânt care se termină cu „ă” sau „ț”: rămâne un octet incomplet, iar textul se afișează cu un semn ciudat.

Comenzi înrudite

  • std::string::append: Adaugă text la sfârșitul șirului, la fel ca +=, cu variante pentru bucăți și caractere repetate.
  • std::string::erase: Șterge o porțiune din șir, dată prin poziția de început și numărul de caractere.
  • std::string::at: at(i) dă caracterul de la poziția i cu verificare; front() și back() dau primul și ultimul.