我有一个static map这是一个private数据成员.如何在实现文件中初始化它,以使它的初始容器为空?事实并非如此const.重要的是,这个容器一开始没有任何东西.
标题:
class XXX {
private:
static std::map<X,Y> the_map; // declares static member
// ...
Run Code Online (Sandbox Code Playgroud)
实施文件:
std::map<X,Y> XXX::the_map; // defines static member
Run Code Online (Sandbox Code Playgroud)
这会将您的映射的构造函数调用插入到程序初始化代码中(以及析构函数进入清理).但请注意 - 不同的翻译单元之间的静态构造函数的顺序是不确定的.
怎么样(如果我理解正确的话):
std::map<T,T2> YourClass::YourMember = std::map<T,T2>();
Run Code Online (Sandbox Code Playgroud)