I have a vector of Scenes, vector<Scene>. What is the correct way to iterate over the elements, as reference or not?
For example this:
BOOST_FOREACH(Scene scene, mScenes)
{
.....
}
Does the macro copy the Scene for each iteration over the vector, or does it use a reference behind the scenes?
So is it any different from this:
BOOST_FOREACH(Scene& scene, mScenes)
{
.....
}
BOOST_FOREACH behaves exactly as you tell him, by value, reference or const reference
Your first example does copy each Scene. Most likely, you want the second. With the first, you can modify scene and the vector will be unaffected. If you're not modifying the vector, you should use const Scene& scene. If you are, use Scene &.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With