Get started with C++ programming by learning how to build applications using its data structures and algorithms C++ is a mature multi-paradigm programming language that enables you to write high-level code with a high degree of control over the hardware. Today, significant parts of software infrastructure, including databases, browsers, multimedia frameworks, and GUI toolkits, are written in C++. This book starts by introducing C++ data structures and how to store data using linked lists, arrays, stacks, and queues. In later chapters, the book explains the basic algorithm design paradigms, such as the greedy approach and the divide-and-conquer approach, which are used to solve a large variety of computational problems. Finally, you will learn the advanced technique of dynamic programming to develop optimized implementations of several algorithms discussed in the book. By the end of this book, you will have learned how to implement standard data structures and algorithms in efficient and scalable C++ 14 code. This book is for developers or students who want to revisit basic data structures and algorithm design techniques. Although no mathematical background is required, basic knowledge of complexity classes and Big O notation along with a qualification in an algorithms course will help you get the most out of this book. Familiarity with C++ 14 standard is assumed.
I really liked this book. The first third is kind of just a quick C++ refresher, going through all the STL data structures, how they work, and their relative pros/cons. Then the rest goes through a bunch of very usefully algorithm concepts, which are mostly taught through analysis of famous algorithms (Dijkstra, knapsack, etc.).
The last portion of the book is the most valuable IMO, because it focuses on dynamic programming, which I always thought was super complicated. I sometimes do programming competitions online, and whenever I get to the DP problems, I pretty much always fall apart. But the way DP is explained in this book really simplified the concepts that I was struggling to understand during my own research (like 90% of the articles explaining this stuff are written in horrible broken english...)
So I'm giving the book 5 stars for that, but as the other guy pointed out, this book has some problems. Yes there are typos (but it's easy to figure out what the author meant to write), and there's a few pages where the formatting of the example code is completely effed. It's not a huge deal if you're already fairly experienced as a programmer, but if you're a newb I could definitely see how that could throw you off.
So, this book has some minor flaws but is definitely worth it to buy. I'd recommend it to people who already know how to program and have a decent grasp of the C++ language, but want to improve their understanding of algorithms. The explanations are very good, and the coding activities at the end of each section are very fun and interesting, but not too hard. Im feeling good about my next coding tournament hehe