矢量的初始化非常缓慢
Initialization of vector of vector is very slow
我有一个向量的向量,我正试图按如下方式初始化它:
vector<vector<float> > matrix(numberOfRows, vector<float> (numberOfCols));
但这一行持续约0.89,其中行数和列数为:
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];
我做错了什么吗?有没有更快的方法来初始化向量?
编辑:
至于问题:
我使用g++-4.5来测试使用默认标准的O3优化级别。
不同之处在于向量被初始化为零,而动态数组则没有。价值2亿,这是值得注意的。
通过在初始化中不展开列,可以选择延迟矢量行的初始化,直到有实值可分配给它们。
相关文章:
- OpenGL大的3D纹理(>2GB)非常慢
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 缓慢提升ASIO
- G++ C++17 类模板参数推导在非常特殊的情况下不起作用
- 使用浮点数和双精度数的非常小数字的数学
- 在打开多个其他窗口时使用全屏窗口时帧速率非常低
- 我从int x[3]得到的一个非常奇怪的输出;
- 反向迭代器在C++中非常奇怪的行为
- 使用istringstearm和get行缓慢读取文件
- 当键值是 std 向量时,为什么使用 at in C++ 访问映射值如此缓慢?
- LLVM/OpenMP中的Mutex非常缓慢
- Postfix评估非常缓慢-优化
- Python和C 程序与子过程之间的沟通非常缓慢
- C 11多线程在神经网络中的性能非常缓慢
- kd树的构建非常缓慢
- 内存消耗迅速增加,然后非常缓慢地下降;内存泄漏
- PInvoke的回调非常缓慢
- c++编写和读取文本文件是非常缓慢的,任何替代方案
- 矢量的初始化非常缓慢