gpt4 book ai didi

c++ - 在 C++ 中检查空静态映射变量

转载 作者:行者123 更新时间:2023-11-30 01:44:49 25 4
gpt4 key购买 nike

在 C++ 中有没有一种方法可以检查静态映射变量是否为空(意思是,还没有任何映射的键/值)?考虑以下不起作用的代码:

static std::map<std::string,std::string> getOptions(){
static std::map<std::string,std::string> asOptions;
if (asOptions != NULL) {
return asOptions;
}
// otherwise, append map items here
return asOptions;
}

看,从设置文件构建 map 的过程比将整个 asOptions 保存在内存中要慢(由于变量上的 static 关键字)。因此,我只会检查它之前是否尚未分配,如果是,则继续前进。

最佳答案

meaning, not yet has any mapped key/vals into it

要检查 map 是否为空,您应该使用 std::map::empty .

无论如何,这不是 C++ 函数内部静态变量的通常用法。你可以

std::map<std::string,std::string> initOptions(){
std::map<std::string,std::string> asOptions;
// append map items here
return asOptions;
}

const std::map<std::string,std::string>& getOptions() {
// the map will be initialized only at the first time called
static std::map<std::string,std::string> asOptions = initOptions();
return asOptions;
}

LIVE

关于c++ - 在 C++ 中检查空静态映射变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com