如何定义链接列表的节点模板?我也想保留指针类型作为模板参数,以便我可以将其更改为unique_ptr或shared_ptr取决于可用的内容。如何使用指针作为模板类型定义链接列表节点的模板类
template<typename T, typename NodePtr>
struct node{
T data;
NodePtr parent = nullptr;
};
的问题是,如何启动这个类,这样NODEPTR会shared_ptr < Node <T ,what?> >
类型?
为什么不'节点 *父;'?额外的模板参数不是必需的(除非您有充分的理由使用它)。 –
PaulMcKenzie
2015-03-31 22:04:06
,因为我可能想使用不同的指针类型,比如说shared_ptr –
user40129
2015-03-31 22:05:19
@ user40129你绝对不会在列表之间共享节点,所以'std :: shared_ptr'没有意义。你也很可能不会拥有唯一但可转移的节点所有权,所以'std :: unique_ptr'也没有多大意义。 – molbdnilo 2015-03-31 22:29:56