在c++中初始化查找表
Initializing a lookup table in c++
由于我似乎不能使构造函数为我的转换类静态,我试图伪造它,但它给了我一个关于未解决的外部的错误:
struct FloatConversions {
static std::array<float, 256> ByteLUT;
struct Initializer {
Initializer() {
for (double i = 0; i < 256; i++) {
ByteLUT[i] = i / 255.0;
}
}
};
Initializer Init;
static inline float ByteToFloat(int val) {
return ByteLUT[val];
}
static inline uint8_t FloatToByte(float val) {
return static_cast<uint8_t>(val * 255.0f);
}
};
typedef FloatConversions FC;
有什么问题吗?
这里有一个简单的解决方案。
float ByteToFloat(int val)
{
static const struct FloatConversions
{
std::array<float, 256> ByteLUT;
FloatConversions()
{
for (int i = 0; i < 256; i++)
{
ByteLUT[i] = i / 255.0f;
}
}
} conveter;
return conveter.ByteLUT[val];
}
相关文章:
- 是否可以初始化不可复制类型的成员变量(或基类)
- C++使用整数的压缩数组初始化对象
- C++初始化基类
- 多成员Constexpr结构初始化
- 无法查找值初始化的向量迭代器?
- 查找初始化列表中的哪个成员抛出了例外
- C++:无法通过传递给查找器函数来重新分配 null 初始化的对象指针
- 如何查找全局静态初始化
- 如何计算初始化一个常量数组(制作常量查找表)
- 寻找快速初始化和快速查找的数据结构 (O(1))
- 在c++中查找对象的未初始化属性
- 如何查找未初始化的堆栈变量
- 通过预处理器初始化3D查找表(LUT)
- 模板初始化列表-查找失败的原因
- 查找库中的所有动态初始化
- 在c++中初始化查找表
- 在c++中创建并初始化一个静态const char数组作为Ascii查找表
- 如何在c++中查找和避免未初始化的原始成员
- 使用代码分析在Visual Studio 2010中查找未初始化的成员
- 在 C&C++ 中查找未初始化的变量