Ich habe Code, der im Wesentlichen wie folgt aussieht:Wie benutzt man BOOST_FOREACH mit zwei std :: maps?
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...
}
Gibt es eine Möglichkeit, die Karten zu verketten den doppelten Code in der zweiten Schleife zu beseitigen? Oder eine Möglichkeit, BOOST_FOREACH so zu erweitern, dass es in einem Durchgang über zwei verschiedene Karten iteriert? Offensichtlich möchte ich nicht die zeitliche Komplexität des Programms erhöhen (sonst könnte ich einfach eine neue Map erstellen und map1 und map2 einfügen). Ich habe das Gefühl, dass ich etwas rudimentäres hier vermisse.
war es absichtlich, dass Sie über int iterieren? Sie sollten das Paar nicht nur int verwenden. oder hat Boost kürzlich die Möglichkeit erhalten, nur über den Wert zu iterieren? –
Wenn überhaupt, würde ich erwarten, dass eine solche Funktion nur über den Schlüssel iteriert ... aber es funktioniert auch nicht mit meiner Version von Boost. – ephemient