我有一个链接列表格式,不同类型的(int
,double
,例如):
struct DblNode { double value; DblNode * next; } struct IntNode { int value; IntNode * next; }
现在我正在为这些列表做些事情,我遇到的问题是我不断复制和粘贴函数,进行次要类型编辑:
DblNode * dbl_listind(DblNode * head,int ind){ DblNode * position = head; int counter = 0; while(counter < ind){ position = position -> next; counter++; } return position; }
然后重复int
.
有没有办法以某种方式具有通用列表类型,然后以某种方式指定此功能,独立于我的链表的值成员的类型?
这就是类/功能模板应该做的事情.例如
templatestruct Node { T value; Node * next; } template Node * listind(Node * head,int ind){ Node * position = head; int counter = 0; while(counter < ind){ position = position -> next; counter++; } return position; } // optional using DblNode = Node ; using IntNode = Node ;