public member function
<string>

std::string::rend

      reverse_iterator rend();const_reverse_iterator rend() const;
      reverse_iterator rend() noexcept;const_reverse_iterator rend() const noexcept;
返回指向反向末尾的反向迭代器
返回一个反向迭代器,它指向字符串第一个字符之前的理论元素(该元素被认为是它的反向末尾)。

string::rbegin 和之间的范围string::rend包含 string 的所有字符(以相反的顺序)。

参数



返回值

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

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

成员类型reverse_iteratorconst_reverse_iterator是反向随机访问迭代器类型(分别指向字符和 const 字符)。

示例

1
2
3
4
5
6
7
8
9
10
11
// string::rbegin/rend
#include <iostream>
#include <string>

int main ()
{
  std::string str ("now step live...");
  for (std::string::reverse_iterator rit=str.rbegin(); rit!=str.rend(); ++rit)
    std::cout << *rit;
  return 0;
}

此代码使用在rbeginrend之间迭代的反向迭代器,逐个字符地打印出字符串的反向内容。请注意,即使反向迭代器递增,迭代也会向后遍历字符串(这是反向迭代器的功能)。
实际输出为
...evil pets won


复杂度

未指定。

迭代器有效性

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

数据竞争

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

复杂度

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

迭代器有效性

没有变化。

数据竞争

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

异常安全

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

另见