gpt4 book ai didi

c++ - 为什么我应该在 C++ 中使用 typedef?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:12 26 4
gpt4 key购买 nike

假设我有:

set<int, less<int> > m_intset;

这行得通,但现在我将其更改为 typedef,最后我得到了两行代码:

typedef set<int, less<int> > SetInt;
SetInt m_intset;

这样的 typedef 有什么好处?我是否正确使用它?

最佳答案

使用 typedef 的一些优点:

  1. 简化:现在,每次您通常需要 set<int, less<int> > ,您只需输入 SetInt .如果您只使用一次集,这没什么大不了的,但如果您有同一集的多个实例,或者需要访问其迭代器,则较短的形式更易于阅读和输入。

  2. 澄清:set<int, less<int> >没有告诉我有关变量的用途的任何信息,只是它是一组整数。使用 typedef,您可以选择一个标识符来解释类型的用途,例如 InventoryCoordinates ,例如。

  3. 抽象:程序改变。虽然你可能认为你需要一个 set<int, less<int> >现在,您的需求将来总是有可能发生变化,因此需要 set<unsigned long, less<unsigned long> >vector<int>或其他一些变化。通过使用 typedef,您只需在一个地方修复它,它会影响 SetInt 的每个实例。在程序中。与手动更改源文件中的十几个或更多条目相比,这要简单得多,也不易出错。

由于上面的第 2 点和第 3 点,typedef 在类或库中使用时可以非常强大,因为它可以加强接口(interface)和实现之间的分离,这通常被认为是良好的 C++ 形式。

当然,只有当您在同一程序中多次使用同一类型时,这些优势中的大部分才会真正显现出来。如果您只希望使用 set<int, less<int> >曾经,typedef 可能有点矫枉过正。

关于c++ - 为什么我应该在 C++ 中使用 typedef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com