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超过最后一个元素,它们就可以工作。