c++ - rbegin 和 rend() 在这个函数中做了什么?

标签 c++ function iterator

下面函数中rbegin()和rend()判断输入是否回文的具体作用是什么?

bool palindromeCheck(string input) {
    if (input == string(input.rbegin(), input.rend())) {
        return true;
    } 
    else {
        return false;
    }
}

最佳答案

constructors for std::string 之一将一对迭代器作为输入。 rbegin()将反向迭代器返回到原始 input 字符串的最后一个字符,并且 rend()将反向迭代器返回到原始 input 字符串第一个字符之前的字符(即字符串“末尾”之后的字符)。

结果是构造了一个新字符串,它是原始字符串的反转版本,如果新字符串与原始字符串相等,则它是回文,函数返回 true。

关于c++ - rbegin 和 rend() 在这个函数中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487553/

相关文章:

c++ - astar_search 在以 listS 作为顶点容器的图上?

javascript - Angular 如何知道构造函数参数的名称?

c++ - 如何删除列表中的 pair<int,int> 元素

java - Java HashSet 奇怪的迭代器行为

c++ - 虚拟/非虚拟继承

c++ - 列表初始化中元素的评估顺序

java - 将 jobjectarray 转换为 vector<uint8_t>

r - 从 R 中两个较大的 data.frame 中的任意两个同名变量中生成 `data.frame`

c++ - 具有可变返回类型的函数

php - 以特殊顺序同时遍历多个迭代器