There is a book, not C++, that I feel is worth a mention for people starting out. Computer Science Distilled: Learn the Art of Solving Computational Problems
by Wladston Ferreira Filho
"A walkthrough of computer science concepts you must know. Designed for readers who don't care for academic formalities, it's a fast and easy computer science guide. It teaches the foundations you need to program computers effectively. After a simple introduction to discrete math, it presents common algorithms and data structures. It also outlines the principles that make computers and programming languages work."