首页 > 其他分享 >stl之iterator traits

stl之iterator traits

时间:2023-02-27 20:45:27浏览次数:39  
标签:const iterator stl value traits 算法 type

iterator需要遵循的原则

iterator是算法和容器的桥梁,算法要知道要处理的容器范围,算法在操作的时候,很可能要知道这个iterator有哪些性质来做最佳化的动作

iterator至少要回答3个问题:
1.iterator_category
2.different_type
3.value_type

实际设置了五种,还有reference和pionter未被使用过

所以iterator必须定义好这5种类型

那算法问问题,iterator答,traits用在那里呢?

当iterator是一个自然指针的时候,它并不是class,没有办法回答问题的时候,需要一个中间层来判断,当iterator是class时直接回答,是指针的时候用别的方式回答,这个中间层就是traits

所以为了解决这个问题,traits就用了偏特化来分离,当是pionter或者是const pointer时特化

但是为什么const pointer回答的value_type是T呢,因为问value_type主要就是来声明变量的,用const是常量就无法改变了

traits完整版

标签:const,iterator,stl,value,traits,算法,type
From: https://www.cnblogs.com/acwarming/p/17152015.html

相关文章

  • C++ STL容器
    STL容器STL容器主要有,动态数组vector,循环双向链表list,双端队列deque,栈stack,Vector容器#include<vector>//头文件vector<int>a;//定义了一个int类型的vector......
  • stl算法汇总
          ......
  • Java STL汇总
    1)STL(StandardTemplateLibrary),即标准模板库,是一个高效的C++程序库,包含了诸多常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软......
  • 03_15_JavaWeb||day17_JSP&MVC&JSTL||day17_JSP(作为了解就可以)&MVC:开发模式&EL【表达
    今日内容1.JSP:1.指令2.注释3.内置对象2.MVC开发模式3.EL表达式4.JSTL标签5.三层架构1.JSP:指令作用:用于配置JSP页面,导入资源文件格式:<%@指令名称属性......
  • C++ STL
    C++STLC++STL是C++自带的函数库,做题时充分利用这些函数,能节省大量时间。vector可变长数组,倍增的思想。具体来说,一个vector数组一开始长度不大,每当元素装满数组,......
  • ASP.NET中maxRequestLength和maxAllowedContentLength的区别;上传大文件设置IIS7文件上
    https://blog.csdn.net/qq_23663693/article/details/89920039maxRequestLength表示ASP支持的最大请求大小,而maxAllowedContentLength指定IIS支持的请求中内容的最大长度......
  • 利用 fastline 进行自动化打包
    前期准备-工具安装安装fastline工具#安装fastline$sudogeminstall-n/usr/local/binfastlane#查看fastline版本$fastlane--version再fastline......
  • stl关联式容器的接口和实现
    红黑树的实现就不再记录了,详情可以去github上面翻翻源代码set的接口和实现:   map的接口和实现:     ......
  • stl之list
    list结构内存大小list里存放的数据就一个node,为link_node类型,最终是个指针,为4字节,所以list的sizeof为4我们可以看到__list_node结构体,它是双向链表,里面存放数据data,但......
  • C++学习(2)STL八股文
    1、STL实现原理及其实现STL提供了六⼤组件,彼此之间可以组合套⽤,这六⼤组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。STL六⼤组件的交互关系:a.容......