看下面的一段代码:
for(vector<string>::iterator it=vec.rbegin();it!=vec.rend();it--) { cout<<*it<<ends; }
编译有错,为什么?
rbegin() rend()的返回类型不是vector<string>::iterator ,而是reverse_iterator;
reverse_iterator rbegin(); const_reverse_iterator rbegin() const;
Return reverse iterator to reverse beginning
所以上面的代码应该为:
for(vector<string>::reverse_iterator it=vec.rbegin();it!=vec.rend();it++) { cout<<*it<<ends; }
注意是it++, 我第一次写的时候以为是--,结果运行时报错it could not be incremental.