0
class Node
{
    int x,y;
    Node *left, *right;
    Node(int x, int y);
    Node();
};

これを使用して deque を作成するにはどうすればよいですか?

deque<Node> balBinaryTree;

私にエラーを与える

syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'

- -編集 - -

---編集---私もやるべきですか

  deque<Node> balBinaryTree;

また

  deque<Node*> balBinaryTree;
4

3 に答える 3

1
#include <deque>
std::deque<Node> balBinaryTree;

私もやるべきですか

deque<Node> balBinaryTree;また

deque<Node*> balBinaryTree;

自分で決めるべきです。 deque<Node>不要なコピーにつながります。 deque<Node*>メモリ管理の問題が発生する可能性があります。

于 2012-05-23T17:07:33.713 に答える
0
#include <deque>
#include <memory>
std::deque<std::shared_ptr<Node>> balBinaryTree;

これにより、メモリ管理が自動的に行われるため、メモリ管理について明示的に心配する必要がなくなります。

注: ノードでネイキッド ポインターを使用しているため、オブジェクトの有効期間が生のポインターよりも長く続くことを確認して、リークしないように注意してください。

于 2012-05-23T17:41:01.887 に答える