std::basic_string<CharT,Traits,Allocator>::pop_back - cppreference.com (original) (raw)

| void pop_back(); | | (constexpr since C++20) | | ----------------- | | ----------------------- |

Removes the last character from the string.

Equivalent to erase(end() - 1).

If empty() is true, the behavior is undefined. (until C++26)
If empty() is true: If the implementation is hardened, a contract violation occurs. Moreover, if the contract-violation handler returns under “observe” evaluation semantic, the behavior is undefined. If the implementation is not hardened, the behavior is undefined. (since C++26)

[edit] Complexity

Constant.

[edit] Exceptions

Throws nothing.

[edit] Notes

In libstdc++, pop_back() is not available in C++98 mode.

[edit] Example

#include #include #include #include   int main() { std::string str("Short string!"); std::cout << "Before: " << std::quoted(str) << '\n'; assert(str.size() == 13);   str.pop_back(); std::cout << "After: " << std::quoted(str) << '\n'; assert(str.size() == 12);   str.clear(); // str.pop_back(); // undefined behavior }

Output:

Before: "Short string!" After: "Short string"

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 534 C++98 std::basic_string did not have the member function pop_back() added

[edit] See also