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.