rbegin()是一个反向迭代器,其类型应该是reverse_iterator而不是iterator。
代码如下:
#include
#include
using namespace std;
int main()
{
vectorv;
v.clear();
for(int i = 1; i <= 5; i++)
v.push_back(i);
vector::iterator it;
for(it = v.begin(); it != v.end(); it++)
printf("%d ", *it);
printf("\n");
it = v.end();
for(it--; it >= v.begin(); it--)
printf("%d ", *it);
printf("\n");
vector::reverse_iterator rit;
for(rit = v.rbegin(); rit != v.rend(); rit++)
printf("%d ", *rit);
printf("\n");
getchar();
return 0;
}
rbegin()是一个反向迭代器,其类型应该是reverse_iterator而不是iterator。
我写了两个反向遍历的方法给楼主,下面是代码:
#include
#include
using namespace std;
int main()
{
vectorv;
v.clear();
for(int i = 1; i <= 5; i++)
v.push_back(i);
vector::iterator it;
for(it = v.begin(); it != v.end(); it++)
printf("%d ", *it);
printf("\n");
it = v.end();
for(it--; it >= v.begin(); it--)
printf("%d ", *it);
printf("\n");
vector::reverse_iterator rit;
for(rit = v.rbegin(); rit != v.rend(); rit++)
printf("%d ", *rit);
printf("\n");
getchar();
return 0;
}
逆向还是++。rbegin通过++最终达到rend
不是有reverse_iterato用吗?