iterator_category

/**迭代器类型*1.inputierator*2.writeiterator*3.forwarditerator在迭代器所形成的区间上进行读写操作*4.bidir

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

/*
* 迭代器类型
* 1. input ierator 
* 2. write iterator
* 3. forward iterator 在迭代器所形成的区间上进行读写操作
* 4. bidirectional iterator 可双向移动
* 5. random access iterator
*/

// 在执行时期决定使用哪一个版本会影响程序效率,最好在编译期选择正确的版本,重载机制可以实现这个目标

// 任何一个迭代器,其类型永远应该落在“该迭代器所隶属之各种类型中最强化的那个”
// STL算法的一个命名规则:以算法所能接受之最地接迭代器类型来为其迭代器性别参数命名
#pragma once

template <class Category, 
		   class T,
		   class Distance = ptrdiff_t,
		   class Pointer = T*,
			class Reference = T&>

struct iterator
{
	typedef Category iterator_category;
	typedef T value_type;
	typedef Distance difference_type;
	typedef Pointer pointer;
	typedef Reference reference;
};
// 继承关系的灵活应用
// class只作标记,不需要任何成员
struct B{};
struct C : public B{};
struct D : public C{};

template <class TT>
void fun(TT& p, B b)
{
	cout << "B version" << endl;
}

template <class TT>
void fun(TT& p, D d)
{
	cout <<"D version" <<endl;
}

int main()
{
	int nn = 10;
	fun(nn, B());
	fun(nn, C());
	fun(nn, D());

	return 0;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120233.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • latex输入希腊字母_LaTeX绝对值

    latex输入希腊字母_LaTeX绝对值

    2022年8月31日
    2
  • android performClick使用

    android performClick使用performClick是使用代码主动去调用控件的点击事件(模拟人手去触摸控件)—————————————–booleanandroid.vi

    2022年7月4日
    16
  • kprobe分析内核kworker占用CPU 100%问题总结

    kprobe分析内核kworker占用CPU 100%问题总结kprobe分析内核kworker占用CPU100%问题总结CreatebyBillow.Jen,2020.3.8前言[引用]有的工程师在线上出问题的时候,非常慌乱,会去胡乱猜测可能的原因,但又缺乏任何证据去支持或者否证他的猜测与假设。他甚至会在线上反复地试错,反复地折腾,搞得一团乱麻,毫无头绪,让自己和身边的同事都很痛苦,白白浪费了宝贵的排错时间。但是当我们有了动态追踪技术之后,排…

    2022年9月24日
    2
  • fvwm 中文手册_kindle vol

    fvwm 中文手册_kindle volFvwmisawindowmanagerforX11.Itisdesignedtominimizememoryconsumption,providea3Dlooktowindowframes,andavirtualdesktop.—TheFVWM(F?VirtualWindowManager)manual在看这个文档之前你

    2022年10月3日
    2
  • linux启动ftp命令_linux安装ftp命令

    linux启动ftp命令_linux安装ftp命令ftp服务器在网上较为常见,Linuxftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件下面由学习啦小编为大家整理了linux下开启ftp命令的相关知识,希望对大家有所帮助!linux下启动FTP命令的方式一般linux都有vsftpd吧,启动命令是servicevsftpdstart,你要限制匿名登录的话,修改它的配置文件/etc/vsftpd/vsftpd.conf,把an…

    2022年9月21日
    2
  • RestFul风格「建议收藏」

    RestFul风格「建议收藏」RestFul风格概念Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。功能资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应添加、删除、修改、查询。传统方式操作资源:通过不同的参数来实现不同的效果!方法单一,post和get​ http://127.0.0.1/item/queryItem.actio

    2022年6月15日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号