Click here to Skip to main content
Click here to Skip to main content

Tagged as

Increment/Decrement operators

, 2 Mar 2010
Rate this:
Please Sign up or sign in to vote.
When incrementing or decrementing a variable, favor prefix operators over postfix operators if you do not need the value of the expression.Example:void foo(std::vector intvec){ for (std::vector::iterator it = intvec.begin(); it != intvec.end(); ++it) { // do something ...
When incrementing or decrementing a variable, favor prefix operators over postfix operators if you do not need the value of the expression.
 
Example:
void foo(std::vector<int> intvec)
{
   for (std::vector<int>::iterator it = intvec.begin(); it != intvec.end(); ++it)
   {
      // do something
   }
}
 
The reason for this is that postfix operators (such as it++) need to create a copy of the original variable. This copy is being used as a placeholder that later can be used as the value of the postfix expression. A prefix operator does not need to do that, as the value of a prefix increment or decrement expression is the value of the variable after the operation.
 
The cost of creating an additional temp might be trivial for integral types, but often ++/-- operators are defined for non-trivial types, and by their very nature they are being used in loop constructs.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Stefan_Lang
Software Developer (Senior)
Switzerland Switzerland
Graduated at TU Darmstadt in Math & CS, with a heavy focus on CAD/CAM
 
Programming and designing applications in C++ in the areas AI, real-time programming, client-server applications and CAD/CAM since 1985.
 
Personal interests: AI, computer graphics, games, reading

Comments and Discussions

 
QuestionIs there any standard that requires creation of a temp? Pinmembersupercat92-Mar-10 6:59 
AnswerRe: Is there any standard that requires creation of a temp? PinmemberTim Craig2-Mar-10 8:49 
AnswerRe: Is there any standard that requires creation of a temp? Pinmemberdwilliss2-Mar-10 15:44 
GeneralRe: Is there any standard that requires creation of a temp? PinmemberTim Craig2-Mar-10 21:38 
GeneralRe: Is there any standard that requires creation of a temp? PinmemberStefan632-Mar-10 22:25 
GeneralRe: Is there any standard that requires creation of a temp? Pinmembersupercat93-Mar-10 7:35 
GeneralRe: Is there any standard that requires creation of a temp? [modified] PinmemberStefan633-Mar-10 23:22 
GeneralRe: Is there any standard that requires creation of a temp? Pinmembersupercat94-Mar-10 5:00 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web04 | 2.8.140827.1 | Last Updated 2 Mar 2010
Article Copyright 2010 by Stefan_Lang
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid