basic_string::erase
指定した位置から文字列の要素または要素範囲を削除します。
iterator erase(
iterator _First,
iterator _Last
);
iterator erase(
iterator _It
);
basic_string<CharType, Traits, Allocator>& erase(
size_type _Pos = 0,
size_type _Count = npos
);
パラメーター
_First
消去する範囲の先頭の要素の位置を指定する反復子。_Last
消去する範囲の最後の要素の一つ前の位置 1 を指定する反復子。_It
消去する文字列の要素の位置を指定する反復子。_Pos
削除する文字列の最初の文字のインデックス。_Count
大部分 _Posで始まる文字列の範囲にある場合は削除される要素の数。
戻り値
最初の 2 種類のメンバー関数では、メンバー関数によって削除された最後の文字の後の最初の文字を指定する反復子。3 番目のメンバー関数では、要素が出力される文字列オブジェクトへの参照。
解説
3 番目のメンバー関数は *thisを返します。
使用例
// basic_string_erase.cpp
// compile with: /EHsc
#include <string>
#include <iostream>
int main( )
{
using namespace std;
// The 1st member function using a range demarcated
// by iterators
string str1 ( "Hello world" );
basic_string <char>::iterator str1_Iter;
cout << "The original string object str1 is: "
<< str1 << "." << endl;
str1_Iter = str1.erase ( str1.begin ( ) + 3 , str1.end ( ) - 1 );
cout << "The first element after those removed is: "
<< *str1_Iter << "." << endl;
cout << "The modified string object str1 is: " << str1
<< "." << endl << endl;
// The 2nd member function erasing a char pointed to
// by an iterator
string str2 ( "Hello World" );
basic_string <char>::iterator str2_Iter;
cout << "The original string object str2 is: " << str2
<< "." << endl;
str2_Iter = str2.erase ( str2.begin ( ) + 5 );
cout << "The first element after those removed is: "
<< *str2_Iter << "." << endl;
cout << "The modified string object str2 is: " << str2
<< "." << endl << endl;
// The 3rd member function erasing a number of chars
// after a char
string str3 ( "Hello computer" ), str3m;
basic_string <char>::iterator str3_Iter;
cout << "The original string object str3 is: "
<< str3 << "." << endl;
str3m = str3.erase ( 6 , 8 );
cout << "The modified string object str3m is: "
<< str3m << "." << endl;
}
必要条件
ヘッダー: <string>
名前空間: std