我正在处理一段需要做与C / C ++中ArcGIS中的组合函数非常相似的代码。请参阅: http://webhelp.esri.com/arcgisdesktop /9.3/index.cfm?topicname= combining%20 multiple%20Rasters

C ++代码将在块中的多个非常大的栅格数据文件(2GB +)中读取,查找唯一的组合和输出到单个映射。例如,如果存在3个映射和<1,3,5>,则相应地,在三张地图的第一个单元中,那么我希望所有后续的情况为<1,3,5>在最终中具有相同的键输出地图。

我应该使用哪些stl容器来存储地图?在块中的文件中读取肯定会增加项目的更复杂性。该算法需要非常快,因此我不能使用具有O(n)复杂性的向量进行搜索。目前,我正在考虑使用Untorted_Multimaps的未蚀刻_MAP,但我不确定这是否是正确的,如果我要获得我需要的性能。

任何想法?

有帮助吗?

解决方案

是的,std :: map或std :: unordered_map是正确的选择。如果您不需要订单,UNORDED_MAP将更快,更紧凑。如果您需要更快的东西,可以用其他地图实现

使用键的一些紧凑型,类似于std :: tople或std :: array。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top