public member function
<string>

std::basic_string::end

      iterator end();const_iterator end() const;
      iterator end() noexcept;const_iterator end() const noexcept;
Return iterator to end
Returns an iterator pointing to the past-the-end character of the string.

The past-the-end character is a theoretical character that would follow the last character in the string. It shall not be dereferenced.

Because the ranges used by functions of the standard library do not include the element pointed by their closing iterator, this function is often used in combination with basic_string::begin to specify a range including all the characters in the string.

If the object is an empty string, this function returns the same as basic_string::begin.

Parameters

none

Return Value

An iterator to the past-the-end of the string.

If the basic_string object is const-qualified, the function returns a const_iterator. Otherwise, it returns an iterator.

Member types iterator and const_iterator are random access iterator types (pointing to a character and to a const character, respectively).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
// string::begin/end
#include <iostream>
#include <string>

int main ()
{
  std::string str ("Test string");
  for ( std::string::iterator it=str.begin(); it!=str.end(); ++it)
    std::cout << *it;
  std::cout << '\n';

  return 0;
}

Output:
Test string


Complexity

Unspecified.

Iterator validity

Generally, no changes.
On some implementations, the non-const version may invalidate all iterators, pointers and references on the first access to string characters after the object has been constructed or modified.

Data races

The object is accessed, and in some implementations, the non-const version modifies it on the first access to string characters after the object has been constructed or modified.
The iterator returned can be used to access or modify characters.

Complexity

Unspecified, but generally constant.

Iterator validity

No changes.

Data races

The object is accessed (neither the const nor the non-const versions modify it).
The iterator returned can be used to access or modify characters. Concurrently accessing or modifying different characters is safe.

Exception safety

No-throw guarantee: this member function never throws exceptions.
The copy construction or assignment of the returned iterator is also guaranteed to never throw.

See also