我想在编译时创建一个数组。 问题是,它会很大(int arr [8000000]),因此使用可变变量或嵌套结构进行递归将不起作用。全局数组必须在创建时进行初始化,这并不是简单的填充{0}。有谁知道如何做吗?就此帖子而言,可以说我想拥有arr [i] = i。
答案 0 :(得分:0)
您可以使用constexpr
函数,例如:
constexpr auto make_huge_array()
{
std::array<int, 8'000'000> res{};
std::size_t i = 0;
for (auto& e : res) {
e = i++;
}
return res;
}