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。这就很有意思了。

  • 相关阅读:
    07noip 统计数字 解题报告
    07noip 矩阵取数游戏 解题报告
    10 noip 乌龟棋 解题报告
    10 noip 引水入城 解题报告
    让我们来看一看C++ 简短自序
    curl post请求封装
    array_merge与数组加
    composer设置autoload自己的代码
    mysql使用笔记
    android入门:zxing学习笔记(六)
  • 原文地址:https://www.cnblogs.com/FWFC/p/8607685.html
Copyright © 2011-2022 走看看