c++ - 如何将 const 数组存储在可执行文件中?
问题描述
我想存储一个计算出的 const 数组,这样a[i] = i*i -3;
这是我的想法,但我不确定:
constexpr int fun(int x) {
return x * x - 3;
}
template<int N>
struct A {
constexpr A() : array() {
for (auto i = 0; i != N; ++i) array[i] = fun(i);
}
int array[N];
};
const A<4> array1{};
const int array2[] = {-3, -2, 1, 6};
我认为array1
是初始化的,而不是存储在可执行文件中,如array2
.
不使用宏是否可以做到这一点?
解决方案
不使用宏是否可以做到这一点?
那么委托构造函数呢?
template<int N>
struct A {
template <int ... Is>
constexpr A(std::integer_sequence<int, Is...>)
: array{ fun(Is)... }
{ }
constexpr A() : A{std::make_integer_sequence<int, N>{}}
{ }
int array[N];
};
推荐阅读
- apache-spark - 创建 One-Hot 编码器。CountVectorizer 使用 ArrayType(IntergerType, true) 返回错误
- vue.js - vuetify `v-tabs` 的子组件将 offsetWidth 返回为 0
- ruby-on-rails - 如何禁用 Active Storage 自动生成的路由
- bash - OpenSSL 解密 AES 256 位(base64)加密密码 - 最终块长度错误
- node.js - 如何使用 Express 和 Node 创建一个简单的用户配置文件 URL?
- java - ScrollPane JavaFX 中图形上的静态标签
- java - 从 docx 转换为 html 时,Apache Tika 不保留 Html 标记属性
- ios - 如何为 AVSpeechSynthesizer 音频生成波形?
- android - 如何让我的操作栏有溢出的图标
- html - ReplaceAll 使用 Java 和 HTML - 更改颜色