我想实现我自己的标准兼容链表,我似乎无法弄清楚为什么你会想要一个T分配器。在我的实现中,节点类拥有T本身,而不是指向存储在其他地方的T的指针,所以T永远不会被明确分配,而只会被创建为节点的一部分。我会明白为什么你可能想要一个节点分配器,但为什么一个T?为什么std :: list有一个T类型的分配器?
这里是我的节点的简化版本。
class Node {
Node* next, prev;
T data; // Not T*
}
我想实现我自己的标准兼容链表,我似乎无法弄清楚为什么你会想要一个T分配器。在我的实现中,节点类拥有T本身,而不是指向存储在其他地方的T的指针,所以T永远不会被明确分配,而只会被创建为节点的一部分。我会明白为什么你可能想要一个节点分配器,但为什么一个T?为什么std :: list有一个T类型的分配器?
这里是我的节点的简化版本。
class Node {
Node* next, prev;
T data; // Not T*
}
它在我知道的所有实现中内部立即反弹。您不能确切地要求用户为您的内部节点类型提供分配器。 –