While code simplicity and clarity normally trump efficiency,
efficient idioms should routinely be preferred to inefficient ones
whenever code maintainability does not suffer.
Knowing and understanding the efficiency of basic language constructs is part of
mastering a programming language.
Alexandrescu and Sutter (C++)
for example, in Guideline 9, "Don't pessimize prematurely",
advise you to prefer efficient idioms to less efficient ones whenever the choice is arbitrary.
This is not premature optimization rather it is the avoidance of
Sometimes, as with i++ versus ++i, or passing objects by value versus const reference,
the more efficient alternative is no harder to read and maintain.
Even better, declaring objects at point of first use, for instance,
the more efficient idiom also improves code maintainability.