c++ - 数组大小以对数表示

标签 c++ arrays

为什么 C++ 不允许将其作为数组大小?

const int SIZE = ceil(log10(pow(2., 1000)));
int arr[SIZE];

对于那些感兴趣的人,这是针对 ProjectEuler 上的第 16 题。我试图声明一个数组来保存数字 2^1000 的每个数字,这是我查找需要多少个元素的方法。

最佳答案

它不允许这样做,因为 = 的右侧不是常量表达式,而 SIZE 需要它是常量表达式。现在 const int 仅仅意味着它是一个只读整数对象。

const int SIZE = ceil(log10(pow(2., 1000)));

改用动态数组,例如 std::vector

或者您可以使用计算器并硬编码该值 - 顺便说一句,它大约为 301.03 :)

关于c++ - 数组大小以对数表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616476/

相关文章:

javascript - 处理 chart.js 中的数据重叠

javascript - 将纯字符串转换为 JSON

c++ - 数组索引从非 0 开始

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

c# - 从 C# 调用 C++ dll 中的方法,没有任何信息,只有头文件

c++ - MPI_Allgather 是我的代码瓶颈吗?如何修复它?

c++ - 在 Xcode 4 中构建用于 Objective-c 应用程序的静态 C++ 库

c++ - 调用 QDomElement::text() 函数时出现 Visual Studio 2008 "Debug Assertion Failed"消息

java - 如何在showMessageDialog中打印双二维数组?

c++ - 自定义目标的 cmake 依赖项