STL容器,用于组合C ++中的多个非常大的栅格数据文件
题
我正在处理一段需要做与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。
不隶属于 StackOverflow