Book Image

The C++ Standard Library - Second Edition

By : Rainer Grimm
Book Image

The C++ Standard Library - Second Edition

By: Rainer Grimm

Overview of this book

Standard template library enables programmers to speed up application development using the built-in data structures and algorithms in their codes. The C++ Standard Library is a comprehensive guide to the updated library of classes, algorithms, functions, iterators, and containers and serves as the best reference to the current C++ 17 standard. Starting with the introduction and history of the standard library, this book goes on to demonstrate how quickly you can manipulate various C++ template classes while writing your applications. You'll also learn in detail the four types of STL components. Then you'll discover the best methods to analyze or modify a string. You'll also learn how to make your application communicate with the outside world using input and output streams and how to use the non-owning string objects with regular strings. By the end of this book, you'll be able to take your programming skills to a higher level by leveraging the standard C++ libraries.
Table of Contents (19 chapters)
Free Chapter
1
Reader Testimonials
8
6. Adaptors for Containers
19
Index

Merge Operations

Merge operations empower you to merge sorted ranges in a new sorted range. The algorithm requires that the ranges and the algorithm use the same sorting criterion. If not, the program is undefined. Per default the predefined sorting criterion std::less is used. If you use your sorting criterion, it has to obey the strict weak ordering. If not, the program is undefined.

You can merge two sorted ranges with std::inplace_merge and std::merge. You can check with std::includes if one sorted range is in another sorted range. You can merge with std::set_difference, std::set_intersection, std::set_symmetric_difference and std::set_union two sorted ranges in a new sorted range.

Merges in place two sorted sub ranges [first, mid) and [mid, last):

void inplace_merge(BiIt first, BiIt mid, BiIt last)
void inplace_merge(ExePol pol, BiIt first, BiIt mid, BiIt last)

void inplace_merge(BiIt first, BiIt mid, BiIt last, BiPre pre)
void inplace_merge(ExePol pol, BiIt first, BiIt mid...