首页 > 其他分享 >对Const容器和普通容器取迭代器的区别

对Const容器和普通容器取迭代器的区别

时间:2022-10-05 10:33:28浏览次数:46  
标签:返回 容器 Const 迭代 iterator const

简述

就常规来讲,当我们使用std::begin()函数来取得一个容器的迭代器时,我们会认为不管什么情况下,都会返回一个指向该容器的普通迭代器,但是实际上并不是这样,当我们通过Const&传递实参时,std::begin(const T& container)会返回一个const_iterator,而不是iterator。这一点同样的也在Effective Modern C++的Item 13: Prefer const_iterators to iterators中有所谈及。 具体可以看下述代码演示。

具体演示

image
可以看到如上述所讲,m_cbegin()所返回的是const_iterator,这里的decltype(auto)则是希望它按照decltype的方式来推导我们的返回类型。

标签:返回,容器,Const,迭代,iterator,const
From: https://www.cnblogs.com/halftheworldaway/p/16755176.html

相关文章

  • 安装Docker容器时,出现https://yum.dockerproject.org/repo/main/centos/7/repodata/re
    解决办法:首先确定把相应的前置包都安装好,之后操作命令行:执行yum-config-manager--disabledockerrepo命令然后再执行:sudo yum installdocker-cedocker-ce-clicont......
  • Python 教程之控制流(12)组合迭代器
    组合迭代器用于简化组合构造(如排列、组合和笛卡尔积)的递归生成器称为组合迭代器。在Python中,有4个组合迭代器:产品():此工具计算输入可迭代对象的笛卡尔积。为了计算可迭代对象......
  • Python 教程之控制流(10)在Python中有效地使用迭代
    下面是使用迭代器的不同方法。C风格的方法:这种方法需要事先知道迭代的总次数。#访问列表元素的C风格方式cars=["Aston","Audi","McLaren"]i=0while(i<len(cars)......
  • Python 教程之控制流(11)无限迭代器
    Python的Itetool是一个模块,它提供了各种函数,这些函数在迭代器上工作以产生复杂的迭代器。该模块作为一个快速,内存效率的工具,可以单独使用或组合使用以形成迭代器代数。例如......
  • C++ 自学笔记 const
    const变量  const是变量不是常量 指针const写在*号后面       const函数可以构成重载 ......
  • 【框架】IOC容器控制反转(助解)
    IOC容器控制反转包括:Bean的获取实质Bean的三种获取接口获取Bean父类获取Bean依赖注入管理数据源工厂Bean使用注解注册Bean组件......
  • flutter系列之:深入理解布局的基础constraints
    目录​​简介​​​​Tight和looseconstraints​​​​理解constraints的原则​​​​总结​​简介我们在flutter中使用layout的时候需要经常对组件进行一些大小的限制,这种......
  • 8.字符串容器string
    1.马上补充?.对于string中字母的大小写转换函数transform(str.begin(),str.end(),str.begin(),::tolower);//将str字符串中的大写转换为小写,保存在str中transform(st......
  • docker容器
    安装dockeruname-r#查看centos内核版本yum-yupdate#更新yum源yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置yum源yum-con......
  • 3、STL-常用容器
    3、STL-常用容器3.1string容器3.1.1string容器的基本概念本质string是C++风格的字符串,而string本质上是一个类strting和char*的区别:char*是一个指针string......