可以说我有:
set<int, less<int> > m_intset;
这可行,但现在我将其更改为typedef
,我最终得到了两行代码:
typedef set<int, less<int> > SetInt;
SetInt m_intset;
这样的好处是什么typedef
?我使用正确吗?
使用的一些优点typedef:
简化:现在,每次您通常需要的时候set<int, less<int> >
,您只需输入SetInt
。如果您只使用该集合一次,这没什么大不了的,但如果您有同一集合的多个实例,或者需要访问其迭代器,则较短的形式更容易阅读和输入。
澄清: set<int, less<int> >
没有告诉我有关该变量的用途的任何信息,只是它是一组整数。和typedef,您可以选择一个解释该类型用途的标识符,例如Inventory
or Coordinates
, 例如。
抽象: 程序有变化。尽管您可能认为您需要set<int, less<int> >
现在,您的需求将来总有可能发生变化,因此需要set<unsigned long, less<unsigned long> >
or vector<int>
或其他一些改变。通过使用typedef,您只需在一处修复此问题,它将影响每个实例SetInt
在节目中。与手动更改源文件中的十几个或更多条目相比,这要简单得多并且不易出错。
由于上述第 2 点和第 3 点,typedef在类或库中使用时非常强大,因为它可以加强接口和实现之间的分离,这通常被认为是良好的 C++ 形式。
当然,只有当您在同一程序中多次使用同一类型时,大多数这些优点才会真正显现出来。如果您只想使用set<int, less<int> >
once, typedef可能有点矫枉过正了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)