关于typedefing结构

时间:2015-03-20 04:39:38

标签: c++ struct

因为我在这里走了一条细线,请放轻松。我真的搜索了现有的线程,我只能看到没有示例的语句,它只是我的头脑。我一直在考虑是否要问这两天,因为我坦率地害怕在这里问一个愚蠢的问题。但我想我现在就冒风险,希望你对我这么轻松,因为这是我的第一个问题。

那些存在的线程表明typedef ing结构将保存重复代码,但是如何?好吗?我举例如下:

struct Node {
    int data;
    Node* value;
};

要创建新节点,我会说:

Node n1;

即使我输入结构如:

typedef struct Node {
    int data;
    Node* value;
} type;

要创建新节点,我会这样做:

type n2;

我真的没有太大的区别。请提供一些示例,真正展示typedef对结构的有用性。

1 个答案:

答案 0 :(得分:1)

对于那种事情,typedef在C语言中非常有用 - 在C ++中没有那么多。在C中,当您拥有Node时,不能只输入struct Node - 您必须实际输入struct Node。所以typedef可以节省一些打字。

在C ++中,它在处理模板化类型时更有用。例如

typedef std::map<std::string, std::pair<int, std::string>> MyMap;

这可让您使用例如MyMap::iterator代替std::map<std::string, std::pair<int, std::string>>::iterator,这更容易输入。