“Think Like a Programmer” by V. Anton Spraul; No Starch Press
V. Anton Spraul is an experienced computer science teacher and has taught introductory programming and computer science for more than 15 years.
The goal of this book is to teach you the creative Part of programming. It’s target audience are clearly beginners who “struggle to write programs, even though you think you understand programming languages.”
You should be familiar with at least one Programming language (it doesn’t have to be c++).
The book starts with some general problem solving techniques (e. g. always have a plan, divide and conquer) and explains them on some general puzzles.
In later chapters Problems will be solved with specific programming concepts like Arrays, pointers, dynamic memory and recursion.
You might be disappointed because Spraul doesn’t give any answers to the exercises but as Spraul states at the beginning of the book you should see them as opportunities to apply the concepts described in the chapters.
The exercises are coded in c++ but the book is not specifically about c++. Most chapters start with a short review of the used concepts in c++.
More infos can be found here