我有雙重鏈接列表的代碼,並且有幾行代碼中的想法不明確。我請求專家對以下評論的評論進行評論。自從我上次使用C++以來,就已經很長時間了。只有兩條線我表示對我來說是不可理解的。雙鏈表列表模板中的幾件事情
template <typename T>
class double_linked
{
struct node
{
T data;
node* prev;
node* next;
node(T t, node* p, node* n) : data(t), prev(p), next(n) {}
};
node* head;
node* tail;
public:
double_linked() : head(NULL), tail (NULL) {}
template<int N>
double_linked(T (&arr) [N]) : head(NULL), tail (NULL)
{
for(int i(0); i != N; ++i)
push_back(arr[i]);
}
bool empty() const { return (!head || !tail); } // this doing?
operator bool() const { return !empty(); } // this doing? i know operators need in C++ but dont know the use of it here
void push_back(T);
void push_front(T);
T pop_back();
T pop_front();
~double_linked()
{
while(head)
{
node* temp(head);
head=head->next;
delete temp;
}
}
};
我知道它告訴列表是否爲空,但我再次知道其實現數組 – 2012-02-26 21:40:41