繁体   English   中英

C ++创建具有动态大小的数组

[英]C++ create array with dynamic size

如何创建具有动态尺寸的数组,如下所示:

int sentLen = sentences.size();

double a[sentLen][sentLen];

for (int i = 0; i < sentLen; i++) 
{
    for (int j = 0; j < sentLen; j++)
    {
        a[i][j] = somefunction(i, j);
    }
}

我的研究导致我不推荐使用malloc或其他过于复杂的方法。 在意识到大小必须恒定之后,我尝试使用unordered_map ,并且尝试了以下操作:

std::unordered_map <int, int, double> a;


for (int i = 0; i < sentLen; i++) 
{
    for (int j = 0; j < sentLen; j++)
    {
        a.insert({ i, j, somefunc(i, j) });
    }
}

但仍然没有成功。

您实际上并不想使用数组。

std::vector<std::vector<double>> a{
   sentLen, std::vector<double>{ sentLen, 0.0 } };

for (int i = 0; i < sentLen; ++i)
{
    for (int j = 0; j < sentLen; ++j)
    {
        a[i][j] = somefunc(i, j);
    }
}

由于无法将变量用作静态数组大小,因此出现错误。 必须在编译时知道它们。 您必须动态分配或使用向量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM