我正在尝试定义一个类

class BTree
{
private:
     map<std::string,BTree*> *node;
public:

    BTree(void);
    ~BTree(void);
    void Insert(BTree *);
};

在编译代码时,编译器给我一个错误
error C2899: typename cannot be used outside a template declaration
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
error C2899: typename cannot be used outside a template declaration

我试图将 map 更改为map<int,int> node之类的简单内容,但仍给我相同的错误。我想念什么吗?

最佳答案

这可能是因为您没有在std中列出using命名空间。 map类型不在全局 namespace 中,因此map无法解析。尝试以下

class BTree {
private:
  std::map<std::string, BTree*> *node;

  ...
};

10-08 11:36