std::basic_string<CharT,Traits,Allocator>::pop_back
Материал из cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
void pop_back(); |
(до C++20) | |
constexpr void pop_back(); |
(начиная с C++20) | |
Удаляет последний символ из строки.
Эквивалентно erase(end() - 1). Поведение не определено, если строка пуста.
Параметры
(нет)
Возвращаемое значение
(нет)
Сложность
Константная.
Исключения
Ничего не генерирует.
Примечание
В libstdc++, pop_back() недоступна в режиме C++98.
Пример
Запустить этот код
#include <cassert>
#include <iomanip>
#include <iostream>
#include <string>
int main()
{
std::string str("Short string!");
std::cout << "перед=" << std::quoted(str) << '\n';
assert(str.size() == 13);
str.pop_back();
std::cout << "после=" << std::quoted(str) << '\n';
assert(str.size() == 12);
str.clear();
// str.pop_back(); // неопределённое поведение
}
Вывод:
перед="Short string!"
после="Short string"
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 534 | C++98 | std::basic_string не имеет функцию-элемент pop_back()
|
добавлена |
Смотрите также
| добавляет символ в конец (public функция-элемент) | |
| удаляет символы (public функция-элемент) |