Last Update:
The C++ Standard Library book - overview & giveaway
Table of Contents
Let’s have a quick overview of another book related to Modern C++ and The Standard Library. This time I picked Rainer Grimm’s book the author of the modernescpp blog.
Read more if you’d like to win C++ book bundle! :)
The book
The C++ Standard Library
What every professional C++ programmer should know about the C++ standard library
The book is available at LeanPub: here’s the link.
And you can find Rainer’s blog at: modernescpp.com
This book comes from the German version (amazon.de link), it was translated into English and then updated with the information about C++14. Later, in the second version of the book, we have descriptions of C++17 features.
In the newest edition you can expect all info about significant STL
C++17 changes like string_view
, parallel algorithms,
std::filesystem
, std::any
, std::optional
and more.
The book is a concise overview of the features, with lots of examples. And as I know from the author it was not an easy task to fit all vital information in around 200 pages.
One note, this book comes as an ebook, but there’s a Korean translation that appeared as a printed version.
Let’s see what’s inside.
The Structure
1. The Standard Library
History and an overview of the Library. Where we are in the standardization process.
2. Utilities
Everything you need to start with STL: pairs and tuples, chrono, smart pointers, type traits and C++17 utils: any, optional and variant.
3. Interface of All Containers
Common functionalities of sequential and associative containers: creation, deletion, size and access.
4. Sequential Container
Basics about arrays, vectors, deques, lists and forward lists.
5. Associative Containers
Information about ordered associative containers (like std::map or std::set) and then unordered (hash maps in the form of std::unordered_map or std::unordered_set).
6. Adaptors for Containers
Stacks Queues and Priority Queues.
7. Iterators
Iterator intro, categories, how to use them.
8. Callable Units
Function objects, functions and lambdas.
9. Algorithms
A quick overview of all useful algorithms: from for_each to sorting, min max, permutations and hashing.
10. Numeric
Random numbers mostly.
11. Strings
How to create and use strings in C++: concatenation, element access, comparisons, searching numeric conversions.
12. String Views
A short chapter about new, non-owning string object - that was introduced in C++17. When they can help and how to use them with the relation to regular strings.
13. Regular Expressions
Regular expressions in the STL were introduced with C++11. This chapter contains a short overview.
14. Input and Output Streams
How to use streams
15. Filesystem library
Basic introduction to the filesystem from C++17
16. Multithreading
Jump start into multithreading (core parts introduced in C++11): memory model, atomics, threads, shared variables, condition variables and tasks.
Summary
Final mark: 4+/5
Pros:
- A concise overview of the Standard Library
- A lot of examples
- Great way to learn STL including C++17
- Various tips and suggestions spread out through the book
Cons:
- sometimes code samples might be explained in more details
- doesn’t look as polished as larger books from standard publishers.
- only ebook English version
Rainer Grimm’s book is a great way to learn basics of STL, including major changes of C++17. The book is easy to read. It can serve as a quick reference or as an overview of the Standard Library. It might be handy if you just finished some intro book about the language and you look for another step.
I’m also a big fan of self-publishing and Rainer is a great example that you can succeed in such approach.
Also if you look for more about multithreading Rainer has another book solely on that topic. Check it out here: Concurrency with Modern… by Rainer Grimm.
So… if you’re interested in the book… I have good news:
Giveaway
The giveaway has ended. Thanks for all your entries and comments!
Together with the author - Rainer Grimm - we’d like to offer you 5 (five!) bundles of the books.
Yet, you can still answer one or two of those questions:
- What are your main blockades when learning C++?
- What are the areas of C++ you’d like (or need) to learn next?
I've prepared a valuable bonus for you!
Learn all major features of recent C++ Standards on my Reference Cards!
Check it out here: