Using the C++ Standard Template Libraries is a contemporary treatment that teaches the generic programming capabilities that the C++ 14 Standard Library provides. In this book, author Ivor Horton explains what the class and function templates available with C++ 14 do, and how to use them in a practical context.
You'll learn how to create containers, and how iterators are used with them to access, modify, and extend the data elements they contain. You'll also learn about stream iterators that can transfer data between containers and streams, including file streams. The function templates that define algorithms are explained in detail, and you'll learn how to pass function objects or lambda expressions to them to customize their behavior. Many working examples are included to demonstrate how to apply the algorithms with different types of containers.
After reading this book, you will understand the scope and power of the templates that the C++ 14 Standard Library includes and how these can greatly reduce the coding and development time for many applications. You'll be able to combine the class and function templates to great effect in dealing with real-world problems.
The templates in the Standard Library provide you as a C++ programmer with a comprehensive set of efficiently implemented generic programming tools that you can use for most types of application.
What you’ll learn
- How to use Standard Library templates with your C++ applications.
- Understand the different types of containers that are available and what they are used for.
- How to define your own class types to meet the requirements of use with containers.
- What iterators are, the characteristics of the various types of iterators, and how they allow algorithms to be applied to the data in different types of container.
- How you can define your own iterator types.
- What the templates that define algorithms do, and how you apply them to data stored in containers and arrays.
- How to access hardware clocks and use them for timing execution.
- How to use the templates available for compute-intensive numerical data processing.
- How to create and use pseudo-random number generators with distribution objects.