Speeding up and shortening a loop
There is no improvement which can be done on the code you show us. If the function constructSomething really needs to be called for each combination of the parameters, there is nothing better you can do.

You should try to optimizie the function, maybe it is possible to cache some part of the construction which is common if one of the parameters is fixed. 

For example you can pop the computation cWord-&gt;getWorldId() in the outer loop, so that you make it once for every Word (instead of once for every City). But I think this is a slight improvement.