在类定义中初始化静态常量成员映射<>
Initialization of static const member map<> in class definition
我将在我的类中有一个const std::map,我希望它是静态的以便在其他实例中重用这个数据结构。不幸的是,它不会编译,我在cpp入门中发现的是:
但是,可以为const整型的静态成员提供类内初始化式,并且必须为const整型的静态成员提供类内初始化式是文字类型的构造符(Primer 5)。
我的代码如下:
clase worker {
//.....
private :
//.....
static map<string, string> const map_{...};
}
那么,是否存在一种OOP技术来重用这个数据结构,假设我们有几十个worker并且map_很大? 似乎你只是不熟悉类成员的相关c++语法:
class worker
{
private:
static const std::map<std::string, std::string> m_;
};
const std::map<std::string, std::string> worker::m_ = {
{ "foo", "bar" },
{ "abc", "def" },
};
成员定义通常存在于单独的.cpp
文件中,因此包含它的翻译单元只在链接中出现一次。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 正在VS调试器中监视映射条目