我正在完成我的第二个模板类的工作(将我制作的旧地图类覆盖为模板),并且我正在花最长时间弄清楚如何为我的结构初始化空值。
我使用 2-3-4 树实现了一个映射,其中每个节点实际上是一个 4 节点,正确的值设置为 NULL(例如,一个 3 节点将有 2 个键/值对和三个孩子,第三对并且四个子指针设置为空。
我遇到的问题是我的模板引发错误(直接从我的终端复制):
mymap.cpp:271:3: error: ambiguous overload for âoperator=â in âtemp->Map<int, std::basic_string<char> >::Elem::t3 = 0â
我正在使用的导致此问题的代码是:
//k3 is a KEY value and t3 is a TYPE value
temp -> k3 = NULL;
temp -> t3 = NULL;
现在,我知道问题是 NULL 关键字通常是为指针保留的,并且我相信解析为 \0 或 0,而 KEY 和 TYPE 可以是任何字面意思,可能不支持这样的值。
我的问题是在这种情况下设置空值的正确方法是什么?
谢谢!