Dar*_*ide 0 c++ arrays int dynamic sizeof
我正在寻找一种方法来动态设置整数数组的大小取决于传递的参数.例如,这是伪代码:
int MyFunction(int number)
{
int myarr[amount of digits in number];
}
Run Code Online (Sandbox Code Playgroud)
所以当输入是13456时,那么int array[]大小应该是5.当我不知道大小的常量时,用C++做最快的方法是什么?
您无法创建具有运行时大小的数组,必须在编译时知道它.我建议std::vector改为.
一种解决方案是在转换为字符串后对字符进行计数
#include <string>
int MyFunction(int number)
{
std::vector<int> myarr(std::to_string(number).size());
}
Run Code Online (Sandbox Code Playgroud)
在数学上,您可以使用日志(基数10)来查找数字中的位数.
#include <cmath>
int MyFunction(int number)
{
int numDigits = static_cast<int>(std::log10(number)) + 1;
std::vector<int> myarr(numDigits);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |