Test your C++ programming skills by solving real-world programming problems covered in the book
Key Features Solve a variety of real-world programming and logic problems by leveraging the power of C++17 Test your skills in using language features, algorithms, data structures, design patterns, and more Explore areas such as cryptography, communication, and image handling in C++Book DescriptionC++ is one of the most widely-used programming languages and has applications in a variety of fields, such as gaming, GUI programming, and operating systems, to name a few. Through the years, C++ has evolved into (and remains) one of the top choices for software developers worldwide. This book will show you some notable C++ features and how to implement them to meet your application needs. Each problem is unique and doesn't just test your knowledge of the language; it tests your ability to think out of the box and come up with the best solutions. With varying levels of difficulty, you'll be faced with a wide variety of challenges. And in case you're stumped, you don't have to we've got the best solutions to the problems in the book. So are you up for the challenge?
What you will learn Serialize and deserialize JSON and XML data Perform encryption and signing to facilitate secure communication between parties Embed and use SQLite databases in your applications Use threads and asynchronous functions to implement generic purpose parallel algorithms Compress and decompress files to/from a ZIP archive Implement data structures such as circular buffer and priority queue Implement general purpose algorithms as well as algorithms that solve specific problems Create client-server applications that communicate over TCP/IP Consume HTTP REST services Use design patterns to solve real-world problemsWho this book is forThis book will appeal to C++ developers of all levels. There's a challenge inside for everyone.
Table of ContentsMath ProblemsLanguage FeaturesStrings and Regular ExpressionsStreams and FilesystemsDate and TimeAlgorithms and Data StructuresConcurrencyDesign PatternsData SerializationArchives, Images, and DatabasesCryptographyNetworking and Services
As of writing this, I've done around 85 of the 100 problems, and the word that comes to mind to best describe this would be "unpolished". The problems themselves could often do with more exposition (I can look up the definition of an Armstrong number, for instance, but would it be so hard to add it to the text?). There were times when I interpreted what the output of the problem should be in a different way (when I see the word histogram, I'm expecting to produce an actual histogram), or creating iterators instead of just copying things to a container. This isn't a huge problem however, at worst, it makes some of the problems slightly more difficult.
It'd be nice if they provided some canned/test data on their repo to use in tests or for basic setup for some of the questions as well.
I have some issues with the solutions; partial minor spoilers ahead I suppose.
All in all, I think this is a good idea, I just wish they'd put more effort into it.