C++逆向迭代器的简单问题 不明白·

来源:百度知道 编辑:UC知道 时间:2024/05/18 15:37:29
以reverse_iterator对象逆序输入vector容器对象内容
#include<string>
#include<iterator>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
string s;
vector<string> svec;
cin>>s;
svec.push_back(s);
cout<<string(svec.rbegin(),svec.rend())<<endl;
system("PAUSE");
return 0;
}
哪一点错了呢 小弟刚学到逆向迭代不是特别清楚 还有
假设rcomma是指向line最后一个 逗号 的迭代器 line是一个string对象
存储“first,second,third”字符串,那么
cout<<string(rcomma.base(),line.end())<<endl;和
cout<<string(rcomma,line.end())<<endl;
有什么区别呢?
最后希望大家能多提供一点 逆向迭代器 的知识
谢谢了O(∩_∩)O~

编译器里面应该写点很清楚了吧 string类参数过载
要从容器的rbegin到rend最好用流迭代器或者循环

#pragma warning(disable: 4786)
#include<string>
#include<iterator>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
string s;
vector<string> svec;
cin>>s;
svec.push_back(s);
ostream_iterator<string> out(cout, "\n");
copy(svec.rbegin(), svec.rend(), out);
system("PAUSE");
return 0;
}