zoukankan      html  css  js  c++  java
  • C++:通用容器操作:反向容器的额外成员

    看C++Primer容器库的时候,在容器库通用操作中看到了一个名词 “反向容器的额外成员” ,我想从字面意思理解的话,应该是迭代器逆向输出。但是不能靠猜是不是,所以还是测试了一下:

    代码如下 :

    #include<iostream>
    #include<list>
    #include<string>
    
    
    using std::cout;
    using std::cin;
    using std::endl;
    using std::list;
    using std::string;
    
    int main()
    {
        list<string> listStr = {"123","456","789","000"};
        
        for(auto it = listStr.crbegin();it != listStr.crend();++it)
        {
            cout<<*it<<endl;
        }
        
        return 0;
    }

    这里结果是:

    这个结果是真正的逆序输出。前面有好几种不正确的方式,输出结果也一直不对,具体就不贴错误代码了,主要还是强调一下逆序输出和想象中不太一样的地方:

    首先在我看来我以为逆序输出是从crend()开始,--it直到crbegin()为止,但是结果并非如此。应该是其迭代器进行了一定程度的封装,使得其与指针不太一样。从指针的角度来看的话,肯定就是我如上所说的样子了。不过这个迭代器的话,封装之后,rbegin和crbegin变成了起始位置,同理rend和crend变成了末尾位置。特别是本来的--it也不一样了,变成了++it。这就很有意思了。

  • 相关阅读:
    java基础 ——String类型
    WinSCP密钥登录,实现文件上传
    linux 文件压缩,以及解压
    win10的资源管理器,边框不见了
    在360浏览器中打开表单,回显错误数据
    java返回数据工具类
    WEB工具类
    JSON 的几种转换
    二维码生成工具类
    XML的几种转换
  • 原文地址:https://www.cnblogs.com/FWFC/p/8607685.html
Copyright © 2011-2022 走看看