首页 > 其他分享 >stl之iterator_category

stl之iterator_category

时间:2023-03-20 23:57:21浏览次数:45  
标签:category iterator Algorithm stl 算法 tag

首先要知道 stl 的算法是什么?

算法(Algorithm)是 function template,Algorithm 看不见容器(Containers),所以要从 iterator 取信息,iterator 必须回答 Algorithm 的问题来进行操作

iterator 的 iterator_category

image

iterator_category 对算法的影响

以 distance 函数为例,如果通过 iterator_trait 取得的 iterator_category 是 random_access_iterator_tag,那直接就特化用 last - first 相减就可以;如果是 input_iterator_tag 那就需要从 first++ 一直到 last 才能得到结果,他们之间的运算效率不一样


在写 distance 返回类型时也不要随便放,可以来问 iterator_traits 的 different_type

image

下面是以 advance 为例的代码参考
image

那为什么一共有 4 种 category(除了output_iterator_tag),为什么没有把其他的都写出来呢?
是因为他们之间有继承关系,是 is a,总有一种 category 会对应起来

iterator_category 和 type traits 对算法的影响

标签:category,iterator,Algorithm,stl,算法,tag
From: https://www.cnblogs.com/acwarming/p/17238451.html

相关文章

  • Nginx代理testlink配置说明
    upstreamtestlink{server192.168.8.253:80weight=1max_fails=3fail_timeout=3s;}server{listen80;listen443ssl;server_nametestlink.test.com;ssl_certificate......
  • CoFlash V1.5.1,含STLINK,CMSIS-DAP等
    CoFlashV1.5.1链接:https://pan.baidu.com/s/14K3n7OseiTFgKMn5sYZ_XA?pwd=5656提取码:5656hex2bin.exe:将hex文件直接拖放到图标上即可生成bin文件链接:https://pan.baid......
  • STL容器:map
    1.基本用法:#include<map>需要头文件。map<key_value,int>mp创建一个以key_value类型为数组下标,存储32位整数类型的mapmap[value]数组操作,可以直接修改或查......
  • Whistle - 使用过程中遇到的问题记录
    1.过滤请求:怎么实现根据请求实体中某个参数的值,过滤该请求?比如请求路由为/go,请求方法为post,每次请求go的时候,我想过滤掉(不显示)body中space=home的请求。......
  • PentestLab-web安全SQL注入-EXP6
    我们打开靶机,选择“SQL Injections”选择“Example6”观察页面我们使用工具测试参数为-u"http://192.168.29.148/sqli/example6.php?id=2"--dumpall开始测试没有发现我......
  • c++常用STL库及常用函数
    临近各种算法比赛,相信很多人想笔者一样还总是记不住很多函数的用法,特此总结一下常用的STL标准库以及标准函数,希望能够有所帮助。1.输入输出输入输出一般用两个标准库:#i......
  • C++ STL 容器的size_type
    在C++STL容器中,size_type是一个无符号整数类型,用于表示容器中元素的数量或大小。由于不同平台和编译器有不同的实现,因此使用size_type可以确保代码的可移植性和兼容......
  • sencha-touch2.0控件nestlist的简单用法
    通过nestlist可以自定义一个有标题到内容的一个组合布局如图<font><font>Ext.create(的“Ext.tab.Panel”,{</font></font><font></font><font><font>全屏:真实,<......
  • 记录抓包工具whistle的使用
    whistle主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应, 他更实用的操作是转发请求,替换本地文件, 安装(mac系统需要加sudo才能进行全局安装)sudonpminsta......
  • 6_JSTL格式化标签
    ​ JSTL格式化标签格式化标签库格式化标签库,也叫作fmt标签,是JTSL中的第二大组成部分,主要解决数据显示格式问题,让JSP页面的数据格式更加规范格式化标签库导入的语......