阅读某开源代码,利用模板特新创建一个指针池时,对下面的两行代码产生了困惑

template<typename T>
class NetPointerPool
{
public:
typedef typename std::vector<T*> PointerList;      // 1

typedef typename std::vector<T*>::iterator PointerListIt;  //2

//.....其余部分省略

}

1和2处代码涉及到两个关键字,typedef,typename

typedef关键字比较常用了,给一种数据类型起个别名

比如   typedef int  INT;接下来使用INT i,j;等价于int i,j。

1处的代码就是声明一个元素类型为T*(可理解为万能指针)的动态数组,别名叫PointerList,其实改为PointerVec就行。

而Typename关键字用在模板类中,其实是便于编译器做参数推导的。

2处代码就是typedef创建了存在类型的别名,而typename告诉编译器iterator 是一个类型而不是一个成员。如果把typename这个关键字去掉,则编译会报错。

typename关键字用法相关推荐

  1. 关键字typename的用法

    变量类型定义 C++在泛型编程中是和class类似的用法 template <typename T> inline T GetMax(T m, T n) { return m > n ...

  2. 【C++模板】typename关键字的用法

    目录 关键字typename 分析起源 场景分析 看看C++标准怎么说 typename在下面情况下禁止使用 关键字typename 作为一个C++程序员我想对于typename关键字都应该不陌生.不 ...

  3. C++中typename关键字的使用方法和注意事项

    目录 起因 typename的常见用法 typename的来源 一些关键概念 限定名和非限定名 依赖名和非依赖名 类作用域 引入typename的真实原因 一个例子 问题浮现 千呼万唤始出来 不同编译 ...

  4. typedef 与 typename 的用法

    一.typedef:类型说明 类型说明的格式为: typedef 类型 新定义名: 类型说明只定义指定的一个类型的新名字,并不是定义一种新的数据类型. eg: typedef int INT; 这样声 ...

  5. php全局变量的关键字,PHP变量作用域(全局变量局部变量)globalstatic关键字用法实例分析...

    本文实例讲述了PHP变量作用域(全局变量&局部变量)&global&static关键字用法.分享给大家供大家参考,具体如下: 我们知道,变量呢,其实就相当于我们用来储存信息的容 ...

  6. java private 命名_java private关键字用法实例

    这篇文章主要介绍了java private关键字用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 package java04; /* * 问 ...

  7. C++:C++中public protected private关键字用法

    C++:C++中public protected private关键字用法 笔者这里主要针对C++中public protected private关键字做一个较全面的总结.首先public prot ...

  8. 设计模式--模板方法模式--Java实现-- java访问控制关键字用法

    1.什么是模板方法 2.具体实现步骤 5.优缺点 6适用场景 java访问控制关键字用法 – protected的解释 (1)私有的:用关键字private修饰,只有本类可见. (2)默认的:不用访问 ...

  9. mysql常见关键字的用法_MySQL 常用关键字用法详解

    MySQL 常用关键字用法详解 在开发工程中,操作数据库的时候经常会有不同类型的条件查询,除了使用where外,Mysql本身也提供了很多常用的关键字.本文主要介绍一些常用的关键字,像update.i ...

最新文章

  1. python求圆柱表面积_python基础知识-字典
  2. 对异步脉冲信号的处理——不归0翻转电路
  3. Java学习笔记3——继承
  4. MNIST数据集下载资源
  5. 一个简单的iBatis入门例子
  6. 20165332第六周学习总结
  7. 盐城机电高等职业技术学校计算机专业,盐城机电高等职业技术学校
  8. 阿狸html浪漫代码,index.html
  9. 如何在 Linux 上安装服务器程序?
  10. PointOperation03_Matlab灰度gray图反色(inverting)
  11. 高德地图web精准定位
  12. lfs库下载_lua使用lfs.dll库进行文件操作
  13. 003java面试笔记——【java基础篇】从团八百失败面试总结的java面试题(未完待续)
  14. 用微信 远程遥控 服务器
  15. 从业20年的“老司机”跟你聊聊:超融合技术哪家强?!
  16. 了解中国的组织结构后续
  17. 问题: 一维Schrodinger方程的双线性Strichartz估计的最佳性
  18. RSA共模攻击(包括原理)
  19. iOS小技能: OCR 之身份证识别 (正反面) 【 应用场景:物流类型app进行实名认证】
  20. 洛谷 1546 最短网络

热门文章

  1. 在PowerPoint中插入视频的两种方法
  2. 硬件设计24之什么是镜头?
  3. 商城+前后端分离+课程设计+大作业 Springboot+vue+swagger+好看的安卓界面
  4. 【lambda函数】lambda()函数
  5. laravel配置QQ邮箱发送邮件
  6. 视频在手机浏览器关闭默认自动放大播放的问题(安卓)
  7. mysql数据归档原则_数据库中的归档是什么意思?
  8. 游戏研发运营工作介绍【游戏运营】
  9. 局域网屏幕共享_USB调试和USB网络共享,安卓有线投屏究竟选哪个?
  10. 信息收集之cms指纹识别