◐ Shell
clean mode source ↗

std::basic_string<CharT,Traits,Allocator>::pop_back — cppreference.com

Материал из 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() добавлена

Смотрите также