大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
/* * 迭代器类型 * 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; }
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120233.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...