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

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. java 验证码图片识别_JavaSE图像验证码简单识别程序详解
  2. 创始人CEO该拿多少工资?
  3. 线上慢查询?试试这几个优化思路!
  4. 面试问:Kafka为什么速度那么快?
  5. 从像素坐标到相机坐标_相机标定方法
  6. 工作287:命名报错
  7. 外国小哥,把整个 CNN 都给可视化了,卷积、池化清清楚楚!
  8. input之question
  9. 更换用户目录后conda环境配置
  10. Oracle 10G2 for CentOS 5.2 安装截图详解
  11. 单独使用mybatis整合mysql案例
  12. 读书笔记:《死去之前,都是人生》
  13. 科技风杂志科技风杂志社科技风编辑部2022年第31期目录
  14. 前端.什么是冒泡和阻止冒泡的原因和方法
  15. 20个常用Python运维库模块及工具
  16. Windows远程桌面实现之十 - 把xdisp_virt项目移植到iOS,macOS,linux平台(一)
  17. Field testMapper in com.example.demo.service.TestService required a bean of type ‘com.example.demo.m
  18. python 特殊方法是什么_Python类的特殊方法
  19. Mall整合RabbitMQ
  20. COBIT+2019框架治理和管理目标(资料下载)

热门文章

  1. Netty学习笔记(1) NIO基础-3
  2. 多线程改进Selector
  3. 大数据舆情监测与分析平台有何作用功能及相关软件排名如何详解
  4. 基于卷积神经网络对男女性眼睛进行识别
  5. 小程序会如何发展?我们做了 8 个大胆的预测
  6. 华为Android手机adb连接不上的又一解决方案
  7. 在nginx的正则配置中使用大括号花括号引起的问题解决
  8. 存储过程错误 1172 - Result consisted of more than one row
  9. 你有没有被“新零售”卖了还替他数钱?
  10. linux系统查看usb口,Linux运维知识之Linux系统下查看USB设备名及使用USB设备