public member function
<string>

std::basic_string::end

      iterator end();const_iterator end() const;
      iterator end() noexcept;const_iterator end() const noexcept;
返回指向末尾的迭代器
返回一个指向字符串末尾后字符的迭代器。

末尾后 字符是一个理论上的字符,它将跟随字符串中的最后一个字符。 它不应被解引用。

由于标准库函数使用的范围不包括其结束迭代器指向的元素,因此该函数通常与basic_string::begin结合使用,以指定一个包含字符串中所有字符的范围。

如果对象是一个空字符串,则此函数返回的值与basic_string::begin相同。

参数



返回值

指向字符串末尾后的迭代器。

如果 basic_string 对象是常量限定的,则该函数返回const_iterator。否则,它返回一个iterator.

成员类型iteratorconst_iterator随机访问迭代器 类型(分别指向字符和常量字符)。

示例

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;
}

输出
Test string


复杂度

未指定。

迭代器有效性

通常,没有变化。
在某些实现中,非 const 版本可能会使对象构造或修改后首次访问字符串字符的所有迭代器、指针和引用都无效。

数据竞争

访问该对象,并且在某些实现中,非 const 版本会在对象构造或修改后首次访问字符串字符时修改它。
返回的迭代器可用于访问或修改字符。

复杂度

未指定,但通常是恒定的。

迭代器有效性

没有变化。

数据竞争

访问该对象(const 版本和非 const 版本都不会修改它)。
返回的迭代器可用于访问或修改字符。并发访问或修改不同的字符是安全的。

异常安全

无异常保证:此成员函数从不抛出异常。
还可以保证返回的迭代器的复制构造或赋值永远不会引发异常。

另见