The Modern C++ Challenge pdf
文件大小: 3100k
源码售价: 10 个金币 积分规则     积分充值
资源说明: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 Description C++ 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 worry: 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 problems Who this book is for This book will appeal to C++ developers of all levels. There's a challenge inside for everyone. Chapter 1, Math Problems, contains a series of math exercises to warm you up for the more challenging problems in the next chapters. Chapter 2, Language Features, proposes problems for you to practice operator overloading, move semantics, user-defined literals, and template metaprogramming aspects such as variadic functions, fold expressions, and type traits. Chapter 3, Strings and Regular Expressions, has several problems for string manipulation, such as converting between strings and other data types, splitting and joining strings, and also for working with regular expressions. Chapter 4, Streams and Filesystems, covers output stream manipulation and working with files and directories using the C++17 filesystem library. Chapter 5, Date and Time, prepares you for the upcoming C++20 extensions to the chrono library, with several calendar and time zone problems that you can solve with the date library, on which the new standard additions are based. Chapter 6, Algorithms and Data Structures, is one of the largest chapters and contains a variety of problems where you need to utilize the existing standard algorithms; others are where you need to implement your own general-purpose algorithms or data structures, such as circular buffer and priority queue. The chapter ends with two rather fun problems, Dawkins' Weasel program and Conway's Game of Life program, where you can learn about evolutionary algorithms and cellular automata. Chapter 7, Concurrency, is where we use threads and asynchronous functions to implement general-purpose parallel algorithms, but also solve some real-word problems involving concurrency. Chapter 8, Design Patterns, proposes a series of problems suited to be solved with design patterns such as decorator, composite, chain of responsibility, template method, and others. Chapter 9, Data Serialization, covers most common formats of serialized data, JSON, and XML, with several problems; but it also challenges you to create PDF files, all with the use of third-party, open-source, and cross-platform libraries. Chapter 10, Archives, Images, and Databases, teaches you to solve problems for working with zip archives, creating PNG files for realworld problems, such as Captcha-like systems and barcodes, and embedding and utilizing SQLite databases in your applications. Chapter 11, Cryptography, mostly covers the user of the Crypto++ library for data encryption and signing. It also challenges you to implement your own Base64 encoding and decoding utilities. Chapter 12, Networking and Services, is where you have to implement your own client-server application communicating on TCP/IP, and also consume various REST services such as bitcoin exchange rates or text translation APIs.
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。