gpt4 book ai didi

c++ - 如何在 C++ 中初始化私有(private)静态常量映射?

转载 作者:IT老高 更新时间:2023-10-28 11:56:55 25 4
gpt4 key购买 nike

我只需要字典或关联数组 string => int

这种情况下有类型映射 C++。

但我只需要一个映射所有实例(-> 静态),并且这个映射不能更改(-> const);

我在 boost 库中找到了这种方式

 std::map<int, char> example = 
boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c');

没有这个库还有其他解决方案吗?我尝试过类似的方法,但 map 初始化总是存在一些问题。

class myClass{
private:
static map<int,int> create_map()
{
map<int,int> m;
m[1] = 2;
m[3] = 4;
m[5] = 6;
return m;
}
static map<int,int> myMap = create_map();

};

最佳答案

C++11 标准引入了统一初始化,如果您的编译器支持它,这会变得更加简单:

//myClass.hpp
class myClass {
private:
static map<int,int> myMap;
};


//myClass.cpp
map<int,int> myClass::myMap = {
{1, 2},
{3, 4},
{5, 6}
};

另见 this section from Professional C++ , 在 unordered_maps 上。

关于c++ - 如何在 C++ 中初始化私有(private)静态常量映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2636303/

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