默认 如何递归定义类型?
标题可能不太准确,问题也傻了点,高人包涵啦
如下:
有这样一段代码:
struct Pair;
typedef vector<Pair> TrieNode;
struct Pair{
char key;
TrieNode *ptr;
Pair(char k, TrieNode *p){ key = k; ptr = p;}
};
如果想用STL的pair应当如何实现呐?
像这样是无法通过编译的:
typedef vector< pair<char, TrieNode*> > TrieNode;
这是一个初学C++的师哥问我,开始没有答上来,想了一下对他说无法实现。因为C++不支持像:
typename TrieNode;
这样的类型声明,所以无法实现typedef的递归定义。自己都觉得这个说法不太能服人啦,早知道不在他面前夸海口说自己擅长C++了^_^
请高人明示!