如何定義鏈接列表的節點模板?我也想保留指針類型作爲模板參數,以便我可以將其更改爲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