【发布时间】:2012-04-22 20:35:06
【问题描述】:
我想知道是否有办法使用标准算法(如std::set_intersect)将定义为std::set<MyData*> 和std::map<MyData*, MyValue> 的两个结构相交或产生差异
问题是我需要计算地图的集合和键集之间的差异,但我想避免重新分配它(因为它是每秒对大型数据结构执行多次的事情)。有没有办法获得std::map 的“关键视图”?毕竟我正在寻找的是在进行设置操作时只考虑键,所以从实现的角度来看它应该是可能的,但我找不到任何东西。
【问题讨论】:
-
看看 boost 迭代器库中的 filter_iterator。
-
对不起,不是 filter_iterator -- transform_iterator。请参阅匿名者的回答。