typedef是定义别名。 比如这里就是把pair<string::size_type, int>这个类型定义一个别名stats,之后就可以用stats直接代替pair<string::size_type, int>这么长又不容易理解的东东了,可以增强代码的可读性。 Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair<string, string> a("James", "Joy"); 也可以像上面一样在定义的时候直接对其初始化。 由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明: typedef pair<string, string> author; author pro("May", "Lily"); author joye("James", "Joyce");