1
我想用雙鏈表實現一個DEQUE。預期的類型說明符錯誤,關於我在做什麼錯誤的任何想法?
DEQUE.h
using namespace std;
template <typename T>
class Node{
Node(const T& data):data(data), next(0), prev(0) {}
public:
Node* next;
Node* prev;
T data;
};
template <typename T>
class DEQUE
{
//interface
};
DEQUE.cpp
template <class T>
void DEQUE<T> ::AddFirst(T t){
Node<T>* temp = new Node(t);
if (counter != 0) {
temp->next = head;
temp->prev = 0 ;
head->prev = temp;
head =temp;
counter++;
}
else{
head = temp;
tail = temp;
temp->next = 0;
temp->prev = 0;
counter++;
}
};
我得到之前 '節點' 錯誤預期的類型說明符就行了
Node<T>* temp = new Node(t);
我在做什麼這裏錯了嗎?我在這裏先向您的幫助表示感謝。
Node<T>* temp = new Node<T>(t);
^^^ missing.
用於創建Node
一個實例的類型不會自動假定與用於DEQUE
類型:
你缺少'#include「DEQUE.h」' –
有點相關:*很有可能模板實現應該移到你的deque.h頭文件中。 [閱讀此爲什麼。](https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file?s=2|2.6716)。 – WhozCraig
@ DrewDormann- DEQUE.h在那裏,我只是展示了代碼中有問題的部分。 –