I just wanted to take a second to highly recommend a book I have, Large Scale C++ Software Design, by John Lakos. It's extremely useful even for small projects because it helps you understand things that most books don't cover. The only (small) caveat is that it's slightly out of date because it was written a few years before the C++ standard was finalized.
And, as always, Bookpool has it much cheaper, FYI.
One neat thing I'll mention... Lakos uses an iterator notation I've never seen before, and I think it's much better than the iterator notation that wound up in the standard (at least for most purposes).
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):