For the benefit of people other than Kenneth, the point of the prefix operator is to "increment this", and the point of the postfix operator is to "increment this, but if I'm used in a longer expression, use the old value, not the new value".
Thus, any time they're used in a larger expression they will typically yield different results to each other. For instance, compare:
int countdown = 10;
while (countdown != 0) {
cout << (countdown++) << "...\n";
}
cout << "BOOM!";
with:
int countdown = 11;
while (countdown >=1 ) {
cout << (--countdown) << "...\n";
}
cout << "BOOM!";
or
int countdown = 10;
do {
cout << (countdown) << "...\n";
--countdown;
} while (countdown);
cout << "BOOM!";
Notice the subtle differences. To me, this example reads easier when (1) the initialised number if the first number printed (2) the decrement is part of the larger expression. (In real life, you'd use a "for" loop for this particular example, but I think there will always be some examples where prefix or postfix is slightly clearer.)
However
However, in modern code writing, 99% of the time I find it easier to read in the long run if the increment is always a separate statement, even if it's slightly longer. So the difference never actually really matters, if there were only one increment operator that couldn't be used in an expression itself, it would rarely impact me.
Summary
If you use postfix or prefix increment operators in an expression, you should use the one that does what you mean, not the other one. If you don't you will almost always get the wrong answer[1].
However, usually DON'T use them in an expression, in which case it doesn't matter much which you use.
But if it doesn't matter, use prefix because that declares your intention of "increment without caring about the return value" better and may occasionally matter performance-wise (see the question linked in the comments under the article).
[1] Also be aware of the usual caveats like never increment the same value twice in one statement. This doesn't work or doesn't do what you expect on most compilers, and would be unclear even if it did.