gpt4 book ai didi

c++ - 有关在C++中初始化和调整大小的数组的问题

转载 作者:行者123 更新时间:2023-12-02 09:54:47 27 4
gpt4 key购买 nike

我在有关c++的书中遇到了此功能,但我无法准确了解正在发生的事情以及为什么似乎需要全部这些。

vector<vector<double>> StatisticsMean::GetResultsSoFar() const
{
vector<vector<double> > Results(1);
Results[0].resize(1);
Results[0][0] = RunningSum / PathsDone;
return Results;
}


据我所知,我们正在第一行中初始化大小为1的数组的数组,那么为什么在第二行中我们需要再次将第一个数组的大小调整为大小1?在第三行中,我们只是为[0] [0]元素分配一个有意义的值。有人可以解释为什么需要所有这些操作吗?为什么这样的东西不起作用:
vector<vector<double>> StatisticsMean::GetResultsSoFar() const
{
vector<vector<double> > Results;
Results[0][0] = RunningSum / PathsDone;
return Results;
}

最佳答案

这条线

vector<vector<double>> Results(1);

创建一个大小为1的 vector ,该 vector 的第一个元素为另一个 vector 。但是另一个 vector 是 大小为零。发生这种情况是因为 Results的元素是默认构造的,而vector的默认构造函数是大小为零的 vector 。

此代码
vector<vector<double>> Results(1, vector<double>(1));

创建一个大小为1的 vector ,其第一个元素也是大小为1的 vector 。

关于c++ - 有关在C++中初始化和调整大小的数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61154836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com