This rule is Obsolete | |
Synopsis: | Use prefix instead of postfix versions of ++ and -- operators for non-simple types |
Language: | C++ |
Severity Level: | 8 |
Category: | Control Flow |
Description: |
Especially in non trivial iterator types, the prefix versions of the ++ and -- operators are more efficient than the postfix versions. Only use the postfix version when you actually need to use the previous value. set<CClass1> set1; Fill(set1); set<CClass1>::iterator theEnd = set1.end(); // use ++i, not i++ for (set<CClass1>::iterator i = set1.begin(); i != theEnd; ++i) { // Do something with *i } Note that a pointer is indeed a simple kind of iterator where usually no significant performance difference will exist between the prefix and postfix versions. Other simple types are the built-in character types, integer types, floating point types and enumerations. |