📜  C++ string.crend()函数(1)

📅  最后修改于: 2023-12-03 15:13:57.514000             🧑  作者: Mango

C++ string.crend()函数

介绍

crend()函数是C++ STL(Standard Template Library)中string类的一个公共成员函数。该函数返回一个只读(const)的反向迭代器,用于表示指向string中最后一位字符的后面一位位置的迭代器。与crbegin()函数类似,crend()函数通常与本地的成员函数或STL算法结合使用,以从右向左迭代字符串。

参数

crend()函数不接受任何参数,因此使用时应注意类型匹配。

返回值

crend()函数的返回值是一个只读(const)的反向迭代器,该迭代器指向string中最后一位字符的后面一位位置。因为它是个const迭代器,所以它只能用于读取string中已有的元素,不能用于修改它们。

示例

下面是一个使用crend()函数的示例程序:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, World!";
    
    // 使用 const_reverse_iterator 对 string 从右向左迭代
    for (auto rit = str.crbegin(); rit != str.crend(); ++rit) {
        std::cout << *rit;
    }
    
    return 0;
}

运行上述程序,输出将是:

!dlroW ,olleH

从示例程序可以看出,crbegin()函数和crend()函数可以让我们从右向左遍历一个string对象,这在某些情况下非常有用。

注意事项
  • crend()函数只能用于读取string中已有的元素,不能用于修改它们。
  • crend()函数返回的迭代器指向string中最后一位字符的后面一位位置,因此对其的解引用是未定义的行为。
  • 如果一个string对象是空的,那么crbegin()crend()函数将返回同一个迭代器(即空迭代器)。因此,在循环中使用它们时,应该先判断string是否为空。
  • crend()函数是string类的一个公共成员函数,因此无需引入其他头文件即可使用。
参考资料
  1. std::string::crbegin - cppreference.com
  2. std::string::crend - cppreference.com