C++初始化错误 std::set

C++ badly initialized std::set

本文关键字:set std 错误 初始化 C++      更新时间:2023-10-16

我在类中有一个公共变量,声明为

std::set<int> test;

并且从未显式初始化。当我尝试从对象的实例的共享指针c访问它时:

std::set<int>& myset = c->test;

我在调试器中看到myset初始化得很糟糕:它有两个字段_Myhead_Mysize空。你能解释一下为什么会这样吗?

你正在使用 std::set<>,它有自己的构造函数来初始化内部数据。所以空是可以的。

问题是指针没有正确初始化,尽管我认为是这样。

我很困惑,因为我来自 Java,在 Java 中,空指针会在不让我检查对象内部变量的情况下生成异常,所以我过早地排除了该选项!