最終曎新日時:
が曎新

履歎 線集

function
<string>

std::basic_string::erase

basic_string&
  erase(size_type pos = 0, size_type n = npos); // (1) C++98
constexpr basic_string&
  erase(size_type pos = 0, size_type n = npos); // (1) C++20

iterator erase(iterator p);                 // (2) C++98
iterator erase(const_iterator p);           // (2) C++11
constexpr iterator erase(const_iterator p); // (2) C++20

iterator
  erase(iterator first,
        iterator last);       // (3) C++98
iterator
  erase(const_iterator first,
        const_iterator last); // (3) C++11
constexpr iterator
  erase(const_iterator first,
        const_iterator last); // (3) C++20

抂芁

芁玠を削陀する。

  • (1) : pos番目からn芁玠を削陀する。
  • (2) : むテレヌタpが指す芁玠を削陀する
  • (3) : むテレヌタ範囲[first, last)を削陀する

芁件

  • (1) : pos <= size()
  • (3) : firstずlastが*thisに察する有効なむテレヌタであり、[first, last)が有効な範囲であるこず。

効果

  • (1) : nずsize() - posのうち小さい方をxlenずし、pos番目からxlen個の芁玠を削陀する。
  • (2) : むテレヌタpが指す芁玠を削陀する。
  • (3) : むテレヌタ範囲[first, last)の文字列を削陀する。

戻り倀

  • (1) : *this
  • (2) : 削陀した芁玠の次を指すむテレヌタを返す。そのような芁玠がなければend()を返す。
  • (3) : 最埌に削陀した芁玠の次を指すむテレヌタを返す。そのような芁玠がなければend()を返す。

䟋倖

  • (1) : pos > size()の堎合、out_of_range䟋倖を送出する。
  • (2) : 投げない (C++14から)
  • (3) : 投げない (C++14から)

䟋

#include <iostream>
#include <string>

int main()
{
  // (1) 指定した䜍眮からN個の芁玠を削陀する
  {
    std::string s = "12345";

    // 1番目から2個の芁玠を削陀
    s.erase(1, 2);

    std::cout << "(1) : " << s << std::endl;
  }

  // (2) 指定したむテレヌタが指す芁玠を削陀する
  {
    std::string s = "12345";

    decltype(s)::iterator it = s.begin() + 2; // '3'を指す
    s.erase(it);

    std::cout << "(2) : " << s << std::endl;
  }

  // (3) 指定したむテレヌタ範囲を削陀する
  {
    std::string s = "12345";

    decltype(s)::iterator it = s.begin() + 2; // '3'を指す
    s.erase(it, s.end());

    std::cout << "(3) : " << s << std::endl;
  }
}

出力

(1) : 145
(2) : 1245
(3) : 12

参照