标准::矢量的 4 维性能
Performance of std::vector with 4 dimensions
我正在寻找在运行超过 4 个索引的数据结构中保存双精度值的最快方法。
我通过以下方式尝试了 std::vector:
vector<vector<vector<vector<double>>>> myValues
我的程序有很多读取和更改mValues值的操作,我想提高性能。
这种 4 维矢量结构的速度有多快?有没有更好的选择,哪个更合适?
谢谢。
在内部,向量将其数据存储在动态分配的数组中,因此 4 级向量将具有相同的性能,指向指针数组的指针数组到指针数组到双精度值数组的指针数组。
另一种方法是分配一个 4D 线性数组(可能通过向量(并手动进行索引计算(arr[i][j][k][l]
的索引是l + level4_size * (k + level3_size * (j + level2_size * i))
,如果肯定会更有效地使用内存,不确定速度,因为它可能取决于实际访问。如果您真的关心速度,则应在实际环境中对这两种实现进行基准测试。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- OpenMP阵列性能较差
- 使用CMake检测支持的C++标准
- 如何理解C++标准N3337中的expr.const.cast子句8
- 递归列出所有目录中的C++与Python与Ruby的性能
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 编译标准库类型
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 标准库容器最简单、性能差的哈希类是什么?
- 不同机器之间的标准时钟性能差异显著
- 标准::矢量的 4 维性能
- 如何在C++中提高标准::set_intersection性能
- 标准堆栈性能问题
- 标准::副本部分标准::矢量的性能
- C++标准队列和矢量性能
- 从标准输出读取奇怪的性能问题
- 性能标准::strstr vs. 标准::字符串::查找
- std::映射标准分配器性能与块分配器
- 由于标准容器中元素的默认初始化而导致性能下降
- 哪个性能更好?标准::数组或 C 数组