gpt4 book ai didi

c++ - 用于在 C++ 中组合多个非常大的栅格数据文件的 STL 容器

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:31:14 25 4
gpt4 key购买 nike

我正在编写一段代码,它需要做一些非常类似于 ArcGIS 中 C/C++ 中的组合函数的事情。请参阅:http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Combining%20multiple%20rasters

C++ 代码将分块读取多个非常大的栅格数据文件 (2GB+),找到独特的组合并输出到单个 map 。例如,如果有 3 个 map 并且 <1,3,5> 存在,恭敬地,在三个 map 的第一个单元格中,那么我希望 <1,3,5> 的所有后续实例在最后一个中具有相同的键输出图。

我应该使用什么 STL 容器来存储 map ?分块读取文件肯定会增加项目的复杂性。该算法需要非常快,所以我不能使用具有 O(n) 复杂度的 vector 进行搜索。目前,我正在考虑使用 unsorted_multimaps 的 unsorted_map,但我不确定这是否正确以及我是否会获得我需要的性能。

有什么想法吗?

最佳答案

是的,std::map 或 std::unordered_map 是正确的选择。如果您不需要订单,unordered_map 会更快、更紧凑。如果您需要更快的东西,可以将其替换为 other map implementation .

为键使用一些紧凑的东西,比如 std::tuple 或 std::array。

关于c++ - 用于在 C++ 中组合多个非常大的栅格数据文件的 STL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11694542/

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