c++ - 如何读写大的 std::vector> 在 C++ 中归档
问题描述
在我的程序的构造函数中,我使用嵌套生成了一个非常大的 2048 * 2048 浮点查找表std::vector<std::vector<float>>
。
查找表每次总是相同的,所以我想将此表写入文件以保存重新计算它。
实现这一目标的最佳方法是什么?最好将值写入大标题,还是保存对象的二进制副本更明智?
提前致谢!
编辑:
如果它有任何影响,也许它与分配内存所花费的时间有关,这是通过以下模式完成的:
dataStructure.resize(numberOfRows);
for (int i = 0; i < numberOfRows; i++)
dataStructure[i].resize(numberOfColumns);
其中数据结构是std::vector<std::vector<float>>
解决方案
在这种情况下,答案是优化查找表的生成。我做的工作比需要的多得多,现在加载时间几乎是即时的。
对于那些将来在这个线程中遇到类似问题的人,评论中有很好的一般性建议。
感谢所有贡献者的关注!
推荐阅读
- docker - 如何使用 puppet 杀死和删除 docker 容器
- r - 重新标记 x 轴以与重新排序函数 ggplot2 保持一致
- forms - Vue.js:有没有办法在项目的所有形式上都有@submit.prevent?
- arrays - 尝试使用一组集合对 MiniZinc 设置约束
- azure-data-explorer - 如何在 Azure 数据资源管理器 (kusto) 中使用数组参数查询数组列
- swift - 在 RealityKit 中添加 SKScene 叠加层
- python - Django:在views.py中导入我的自定义用户的最佳方法是什么?
- jquery - Oracle APEX 5.1 - 如何禁用/启用交互式网格 - 编辑按钮
- asp.net-core-mvc - 带有 asp.net Core MVC 3.1 的 BackgroundService
- angular - 离子如何从另一个页面运行一个页面的功能