Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>::pop_back

From ja.cppreference.net
 
 
 
std::basic_string
 
void pop_back();
(C++20 から constexpr)

文字列の末尾の文字を削除します。

erase(end() - 1) と同等です。

empty() が true の場合、動作は未定義です。

(C++26未満)

empty() が true の場合:

  • 実装が ハードニング されている場合、契約違反 が発生します。
  • 実装がハードニングされていない場合、動作は未定義です。
(C++26 から)

計算量

定数。

例外

例外を送出しません。

注記

libstdc++では、 pop_back() はC++98モードでは 利用できません 。

例

#include <cassert>
#include <iomanip>
#include <iostream>
#include <string>
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
}

出力:

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

不具合報告

以下の動作変更欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 534 C++98 std::basic_string にはメンバー関数 pop_back() が存在しなかった 追加された

関連項目

末尾に文字を追加する
(公開メンバ関数)
文字を削除する
(公開メンバ関数)