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

Arrays

std::array is a homogeneous container of fixed length. It needs the header <array>. The std::array combines the memory and runtime characteristic of a C array with the interface of std::vector. This means in particular, the std::array knows its size. You can use std::array in the algorithms of the STL.

You have to keep a few special rules in your mind to initialise a std::array.

std::array<int, 10> arr
The 10 elements are not initialised.
std::array<int, 10> arr{}
The 10 elements are default initialised.
std::array<int, 10> arr{1, 2, 3, 4, 5}
The remaining elements are default initialised.

std::array supports three types of index access.

arr[n];
arr.at(n);
std::get<n>(arr);

The most often used first type form with angle brackets does not check the boundaries of the arr. This is in opposition to arr.at(n). You will get eventually a std::range-error exception. The last type shows the relationship of the std::array...