gpt4 book ai didi

c++ - vector of vector的初始化很慢

转载 作者:太空狗 更新时间:2023-10-29 20:00:32 24 4
gpt4 key购买 nike

我有一个 vector 的 vector ,我正在尝试按如下方式初始化它:

vector<vector<float> > matrix(numberOfRows, vector<float> (numberOfCols));

但是这条线持续大约 0.89,其中 numberOfRows 和 numberOfCols 是:

const uint32_t numRows = 10000;
const uint32_t numCols = 20000;

而使用以下代码初始化动态数组需要 0.04 秒才能执行:

float **matrix = new float*[numberOfRows];
for (size_t i = 0; i < numberOfRows; ++i)
matrix[i] = new float[numberOfCols];

我做错了什么吗?有没有更快的方法来初始化该 vector ?

编辑:

至于问题:

我使用 g++-4.5 来测试使用默认标准的 O3 优化级别。

最佳答案

不同之处在于 vector 被初始化为零,而动态数组则没有。有 2 亿个值,这是值得注意的。

您可以选择延迟 vector 行的初始化,直到您有实际值来分配它们,方法是在初始化时不扩展列。

关于c++ - vector of vector的初始化很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424698/

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