看下面的一段代码:

 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.

 

相关文章:

  • 2022-01-24
  • 2021-11-15
  • 2022-02-06
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
  • 2021-06-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-12
  • 2021-12-10
  • 2022-12-23
  • 2021-11-13
  • 2021-04-14
  • 2021-11-26
相关资源
相似解决方案