我试图实施BST,但std::nullptr向我显示错误:
错误:'nullptr'之前的预期unqualified-id
#include <iostream>
#include <memory>
template <typename T>
class BinTreeNode {
public:
BinTreeNode(T key): data {key} {
left = std::nullptr;
right = std::nullptr;
}
~BinTreeNode() {}
T data;
BinTreeNode<T>* left;
BinTreeNode<T>* right;
};
template <typename T>
class BinTree {
public:
BinTree(){
root = std::nullptr;
}
~BinTree() {}
BinTreeNode<T>* root;
};
int main(){
BinTree<int> tree;
}
Run Code Online (Sandbox Code Playgroud)
我试过在谷歌搜索但没有任何有意义的相关内容 std::nullptr
Ser*_*eyA 16
nullptr,不像nullptr_t,不需要std::前缀.这样做的原因是nullptr是文字,并且没有在命名空间中定义,在std那里没有定义相同的方式42.它也不需要使用任何包含指令.
另一方面,nullptr_t是一个在命名空间中定义的类型,std需要<cstddef>包含它.