【发布时间】:2015-06-02 19:10:16
【问题描述】:
我正在寻找一种方法来根据传递的参数动态设置整数数组的大小。 以伪代码为例:
int MyFunction(int number)
{
int myarr[amount of digits in number];
}
因此,当输入为 13456 时,int array[] 的大小应为 5。
当我不知道大小的常量时,在 C++ 中执行此操作的最快方法是什么?
【问题讨论】:
-
您不使用 std::vector 有什么原因吗?数组大小必须是编译时常量。您现在是在编译时调整大小还是仅在运行时调整大小?
-
int myarr[runtime_value]是一个 VLA 扩展,无论如何都喜欢使用std::vector。 -
我只是想知道是否可以使用 siezof() 或类似的东西以某种方式动态分配整数的大小?我知道有 std::vector 但我想避免这种情况。
-
log10可能会有所帮助,或者简单的std::vector::push_back逐个数字。 -
如果您按照
sizeof的思路进行思考,那么在大多数情况下,像int myarr[11];这样简单的东西就足够了(对于4 字节有符号整数)。这当然是最快的方法!
标签: c++ arrays dynamic int sizeof