cplusplus.com
C++ : Reference : Strings library : string : erase
 
cplusplus.com
Information
Documentation
Reference
Articles
Forum
Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
Strings library
char_traits
classes:
string
global functions:
getline
operator+
operator<<
operator>>
comparison operators
swap
string
string::string
member constants:
string::npos
member functions:
string::append
string::assign
string::at
string::begin
string::capacity
string::clear
string::compare
string::copy
string::c_str
string::data
string::empty
string::end
string::erase
string::find
string::find_first_not_of
string::find_first_of
string::find_last_not_of
string::find_last_of
string::get_allocator
string::insert
string::length
string::max_size
string::operator+=
string::operator=
string::operator[]
string::push_back
string::rbegin
string::rend
string::replace
string::reserve
string::resize
string::rfind
string::size
string::substr
string::swap


string::erase

public member function
 string& erase ( size_t pos = 0, size_t n = npos );
iterator erase ( iterator position );
iterator erase ( iterator first, iterator last );

Erase characters from string

Erases a part of the string content, shortening the length of the string.

The characters affected depend on the member function version used:

string& erase ( size_t pos = 0, size_t n = npos );
Erases a sequence of n characters starting at position pos. Notice that both parameters are optional: with only one argument, the function deletes everything from position pos forwards, and with no arguments, the function deletes the entire string, like member clear.
iterator erase ( iterator position );
Erases the character referred by the iterator position. Only one character is affected.
iterator erase ( iterator first, iterator last );
Erases all the characters between first and last.

Parameters

pos
Position within the string of the first character to be erased.
If the position passed is past the end of the string, an out_of_range exception is thrown.
n
Amount of characters to be removed. It may remove less characters if the end of the string is reached before the n characters have been erased. The default value of npos indicates that all the characters until the end of the string should be erased.
size_t is an unsigned integral type.
position
Iterator of the member type string::iterator referring to a single character in the string to be removed.
first
Iterator of the member type string::iterator referring to the first character in a sequence of characters within the string to be erased.
last
Iterator of the member type string::iterator referring to the end of the sequence of characters (i.e. the position after the last character in the string) to be erased.

Return Value

For the member that returns a string&, the function returns *this.
For the remaining members, the function returns an iterator of member type string::iterator referring to the character that now occupies the position of the first character erased, or, if no such character exists, returns end().

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// string::erase
#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str ("This is an example phrase.");
  string::iterator it;

  // erase used in the same order as described above:
  str.erase (10,8);
  cout << str << endl;        // "This is an phrase."

  it=str.begin()+9;
  str.erase (it);
  cout << str << endl;        // "This is a phrase."

  str.erase (str.begin()+5, str.end()-7);
  cout << str << endl;        // "This phrase."
  return 0;
}


Basic template member declaration

( basic_string<charT,traits,Allocator> )
1
2
3
4
typedef typename Allocator::size_type size_type;
basic_string& erase( size_type pos = 0, size_type n = npos);
     iterator erase ( iterator p );
     iterator erase ( iterator first, iterator last );


See also