期望的类型说明符错误,任何关于我做错的想法?

时间:2015-05-05 03:46:43

标签: c++ stl

我正在尝试使用双链表实现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'错误之前得到了预期的类型说明符

Node<T>* temp = new Node(t);

我在这里做错了什么?感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您在创建var rectToDisplay = MKMapRectNull for treasure in self.treasures { let treasurePointRect = MKMapRect(origin: treasure.location.mapPoint, size: MKMapSize(width: 0, height: 0)) rectToDisplay = MKMapRectUnion(rectToDisplay, treasurePointRect) } 的实例时忘记了类型:

Node

用于创建Node<T>* temp = new Node<T>(t); ^^^ missing. 实例的类型不会自动假设与Node使用的类型相同。你必须明确指定它。