【发布时间】:2009-04-20 20:03:03
【问题描述】:
我的代码基本上是这样的:
std::map<int, int> map1, map2;
BOOST_FOREACH(int i, map1)
{
// do steps 1-5 here...
}
BOOST_FOREACH(int i, map2)
{
// do steps 1-5 (identical to above) here...
}
有没有办法连接地图以消除第二个循环中的重复代码?或者一种扩展 BOOST_FOREACH 以一次性遍历两个不同地图的方法?显然我不想增加程序的时间复杂度(否则我可以创建一个新地图并将其插入 map1 和 map2)。我有一种感觉,我在这里遗漏了一些基本的东西。
【问题讨论】:
-
您是否故意迭代 int?你应该使用 pair
而不仅仅是 int。还是 boost 最近获得了仅对值进行迭代的可能性? -
如果有的话,我希望这样的功能只能迭代密钥......但它也不适用于我的 Boost 版本。
标签: c++ stl boost foreach maps