C++ 反向指针迭代器的标准方法

C++ 反向指针迭代器的标准方法,c++,pointers,iterator,reverse,C++,Pointers,Iterator,Reverse,指针是否有类似于rbegin和rend的功能 我有指向c风格字符串的头和尾的指针,但希望为它们创建反向迭代器 我想知道标准是否提供了一种方法来实现这一点,或者我是否必须为此编写自己的代码 编辑:我使用低级代码是有原因的。没有std::basic_string等。目标是使用std::find查找值的最后一次出现。使用std::reverse\u迭代器: #include <iostream> #include <iterator> int main() { con

指针是否有类似于
rbegin
rend
的功能

我有指向c风格字符串的头和尾的指针,但希望为它们创建反向迭代器

我想知道标准是否提供了一种方法来实现这一点,或者我是否必须为此编写自己的代码


编辑:我使用低级代码是有原因的。没有
std::basic_string
等。目标是使用
std::find
查找值的最后一次出现。

使用
std::reverse\u迭代器

#include <iostream>
#include <iterator>

int main() {
    const char* s = "abc";
    std::reverse_iterator<const char*> first(s + 3);
    std::reverse_iterator<const char*> last(s);
    for( ; first != last; ++first) {
        std::cout << *first;
    }
    std::cout << '\n';
    return 0;
}
#包括
#包括
int main(){
const char*s=“abc”;
std::反向迭代器优先(s+3);
std::反向迭代器最后一个(s);
for(;first!=last;++first){

STD::CUT< P>新C++ 2014标准包括数组

的相应函数
template <class T, size_t N> reverse_iterator<T*> rbegin(T (&array)[N]);
template <class T, size_t N> reverse_iterator<T*> rend(T (&array)[N]);
模板反向迭代器rbegin(T(&array)[N]);
模板反向迭代器rend(T(&数组)[N]);
事实上,它们只使用std::reverse_迭代器

因此,如果您的编译器不支持这些函数,您可以自己编写

std::reverse_iterator<char *> first( tail );
std::reverse_iterator<char *> last( head );
std::反向迭代器优先(尾部);
std::反向迭代器last(head);

std::reverse_iterator
将C样式的字符串放入一个?您希望从迭代器中得到什么。一般来说,我认为迭代器是指针的抽象。如果您想使用std算法,只要end超过最后一个元素,它们就可以工作。