The Modern C++ Challenge: Become an expert programmer by solving real-world problems
- Length: 328 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2018-05-23
- ISBN-10: 1788993861
- ISBN-13: 9781788993869
- Sales Rank: #1350403 (See Top 100 Books)
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 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.
Title Page Copyright and Credits The Modern C++ Challenge Packt Upsell Why subscribe? PacktPub.com Contributors About the author About the reviewers Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Building the code How to generate projects for Visual Studio 2017 How to generate projects for Xcode Conventions used Get in touch Reviews Math Problems Problems 1. Sum of naturals divisible by 3 and 5 2. Greatest common divisor 3. Least common multiple 4. Largest prime smaller than given number 5. Sexy prime pairs 6. Abundant numbers 7. Amicable numbers 8. Armstrong numbers 9. Prime factors of a number 10. Gray code 11. Converting numerical values to Roman 12. Largest Collatz sequence 13. Computing the value of Pi 14. Validating ISBNs Solutions 1. Sum of naturals divisible by 3 and 5 2. Greatest common divisor 3. Least common multiple 4. Largest prime smaller than given number 5. Sexy prime pairs 6. Abundant numbers 7. Amicable numbers 8. Armstrong numbers 9. Prime factors of a number 10. Gray code 11. Converting numerical values to Roman 12. Largest Collatz sequence 13. Computing the value of Pi 14. Validating ISBNs Language Features Problems 15. IPv4 data type 16. Enumerating IPv4 addresses in a range 17. Creating a 2D array with basic operations 18. Minimum function with any number of arguments 19. Adding a range of values to a container 20. Container any, all, none 21. System handle wrapper 22. Literals of various temperature scales Solutions 15. IPv4 data type 16. Enumerating IPv4 addresses in a range 17. Creating a 2D array with basic operations 18. Minimum function with any number of arguments 19. Adding a range of values to a container 20. Container any, all, none 21. System handle wrapper 22. Literals of various temperature scales Strings and Regular Expressions Problems 23. Binary to string conversion 24. String to binary conversion 25. Capitalizing an article title 26. Joining strings together separated by a delimiter 27. Splitting a string into tokens with a list of possible delimiters 28. Longest palindromic substring 29. License plate validation 30. Extracting URL parts 31. Transforming dates in strings Solutions 23. Binary to string conversion 24. String to binary conversion 25. Capitalizing an article title 26. Joining strings together separated by a delimiter 27. Splitting a string into tokens with a list of possible delimiters 28. Longest palindromic substring 29. License plate validation 30. Extracting URL parts 31. Transforming dates in strings Streams and Filesystems Problems 32. Pascal's triangle 33. Tabular printing of a list of processes 34. Removing empty lines from a text file 35. Computing the size of a directory 36. Deleting files older than a given date 37. Finding files in a directory that match a regular expression 38. Temporary log files Solutions 32. Pascal's triangle 33. Tabular printing of a list of processes 34. Removing empty lines from a text file 35. Computing the size of a directory 36. Deleting files older than a given date 37. Finding files in a directory that match a regular expression 38. Temporary log files Date and Time Problems 39. Measuring function execution time 40. Number of days between two dates 41. Day of the week 42. Day and week of the year 43. Meeting time for multiple time zones 44. Monthly calendar Solutions 39. Measuring function execution time 40. Number of days between two dates 41. Day of the week 42. Day and week of the year 43. Meeting time for multiple time zones 44. Monthly calendar Algorithms and Data Structures Problems 45. Priority queue 46. Circular buffer 47. Double buffer 48. The most frequent element in a range 49. Text histogram 50. Filtering a list of phone numbers 51. Transforming a list of phone numbers 52. Generating all the permutations of a string 53. Average rating of movies 54. Pairwise algorithm 55. Zip algorithm 56. Select algorithm 57. Sort algorithm 58. The shortest path between nodes 59. The Weasel program 60. The Game of Life Solutions 45. Priority queue 46. Circular buffer 47. Double buffer 48. The most frequent element in a range 49. Text histogram 50. Filtering a list of phone numbers 51. Transforming a list of phone numbers 52. Generating all the permutations of a string 53. Average rating of movies 54. Pairwise algorithm 55. Zip algorithm 56. Select algorithm 57. Sort algorithm 58. The shortest path between nodes 59. The Weasel program 60. The Game of Life Concurrency Problems 61. Parallel transform algorithm 62. Parallel min and max element algorithms using threads 63. Parallel min and max element algorithms using asynchronous functions 64. Parallel sort algorithm 65. Thread-safe logging to the console 66. Customer service system Solutions 61. Parallel transform algorithm 62. Parallel min and max element algorithms using threads 63. Parallel min and max element algorithms using asynchronous functions 64. Parallel sort algorithm 65. Thread-safe logging to the console 66. Customer service system Design Patterns Problems 67. Validating passwords 68. Generating random passwords 69. Generating social security numbers 70. Approval system 71. Observable vector container 72. Computing order price with discounts Solutions 67. Validating passwords 68. Generating random passwords 69. Generating social security numbers 70. Approval system 71. Observable vector container 72. Computing order price with discounts Data Serialization Problems 73. Serializing and deserializing data to/from XML 74. Selecting data from XML using XPath 75. Serializing data to JSON 76. Deserializing data from JSON 77. Printing a list of movies to a PDF 78. Creating a PDF from a collection of images Solutions 73. Serializing and deserializing data to/from XML 74. Selecting data from XML using XPath 75. Serializing data to JSON 76. Deserializing data from JSON 77. Printing a list of movies to a PDF 78. Creating a PDF from a collection of images Archives, Images, and Databases Problems 79. Finding files in a ZIP archive 80. Compressing and decompressing files to/from a ZIP archive 81. Compressing and decompressing files to/from a ZIP archive with a password 82. Creating a PNG that represents a national flag 83. Creating verification text PNG images 84. EAN-13 barcode generator 85. Reading movies from an SQLite database 86. Inserting movies into an SQLite database transactionally 87. Handling movie images in an SQLite database Solutions 79. Finding files in a ZIP archive 80. Compressing and decompressing files to/from a ZIP archive 81. Compressing and decompressing files to/from a ZIP archive with password 82. Creating a PNG that represents a national flag 83. Creating verification text PNG images 84. EAN-13 barcode generator 85. Reading movies from an SQLite database 86. Inserting movies into an SQLite database 87. Handling movie images in an SQLite database Cryptography Problems 88. Caesar cipher 89. Vigenère cipher 90. Base64 encoding and decoding 91. Validating user credentials 92. Computing file hashes 93. Encrypting and decrypting files 94. File signing Solutions 88. Caesar cipher 89. Vigenère cipher 90. Base64 encoding and decoding 91. Validating user credentials 92. Computing file hashes 93. Encrypting and decrypting files 94. File signing Networking and Services Problems 95. Finding the IP address of a host 96. Client-server Fizz-Buzz 97. Bitcoin exchange rates 98. Fetching emails using IMAP 99. Translating text to any language 100. Detecting faces in a picture Solutions 95. Finding the IP address of a host 96. Client-server Fizz-Buzz 97. Bitcoin exchange rates 98. Fetching emails using IMAP 99. Translating text to any language 100. Detecting faces in a picture Bibliography Articles Library documentation Other Books You May Enjoy Leave a review - let other readers know what you think
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: The Modern C++ Challenge: Become an expert programmer by solving real-world problems
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.