C++中的using 和 Typedef对比
c++中有两个可用于定义新类型的关键字:typedef和using。这两个关键字都允许你创建一个可以用于声明变量的新类型名称,但它们的工作方式略有不同。
typedef是一个比较古老的关键字,从一开始就是c++语言的一部分。它用于创建一个新的类型名,该类型名是现有类型的别名。例如,你可以使用typedef来创建一个名为MyInt的新类型,它是内置int类型的别名:
语法
在这个定义之后,你可以像使用int一样使用MyInt来声明变量:
片段
Using是c++ 11中引入的一个较新的关键字。它的工作方式与typedef类似,但它的语法更灵活,可以在你代码中的更多地方使用。例如,你可以使用using以与typedef相同的方式定义一个新的类型名称:
片段
这将创建一个名为MyInt的新类型,它是内置int类型的别名。然后可以使用MyInt来声明变量,就像使用int一样。
一般来说,使用被认为是在c++中定义新类型名称的一种更现代、更灵活的方式。为了向后兼容,仍然支持Typedef,但最新的代码应该使用using代替。
下面的例子使用using关键字定义了一个名为MyInt的新类型,它是内置int类型的别名:
C++ 代码(示例1)
这段代码的输出如下:
请注意,使用并不限于为内置类型(如int)定义类型别名。你可以用它为任何类型定义类型别名,包括用户定义类型、模板类型等。
C++ 代码(示例2)
输出:
在这段代码中,我们创建了一个可以保存一系列整数的vector
对象。然后,我们使用push_back
方法向vector中添加一些元素,并打印其大小和容量。接下来,我们使用pop_back
方法从向量中删除最后一个元素,并再次打印它的大小和容量
C++ 代码(typedef 示例)
输出:
在这段代码中,我们使用typedef
关键字为整数vector
创建了一个名为IntVector
的别名。然后我们使用这个别名来创建一个vector
对象并向其添加一些元素。