educative.io

C++ Standard Library including C++ 14 & C++ 17 (Rainer Grimm)


Input and Output Streams - Introduction This chapter will cover all the input and output features in C++17. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5137932373458944). Adaptors for Containers - Queue A queue follows the opposite principle of stack. It is a very powerful data structure in its own right. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5710472183545856). Callable Units - Functions and Function Objects Let's take a look at the first two types of callables in C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5751265782923264). Interface of All Containers - Assign and Swap This lesson deals with ways to update and swap values in containers. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5683600720658432). Useful Functions - Forward Now, we'll learn about the way std::forward helps us create generic function templates. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5133167375679488). Smart Pointers - Unique Pointers The first type of smart pointer in this section is the unique pointer. It limits the access to its resource, thereby, maintaining its privacy. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5689404295217152). Useful Functions - Move vs. Copy In this lesson we'll see how the std::move utility proves more efficient that copying. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5105301627863040). Reference Wrappers - std::ref and std::cref In the last lesson, we were introduced to reference wrappers. Now, we will learn how to create them. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5652776814116864). Overview - Input, Output and Filesystems C++17 builds upon the prominent I/O stream library but adding the new filesystem library. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5724958034493440). Type Traits - Check Type Information Type traits allow us access and verify the type categories for all our variables. We'll write some code to do that. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5747626871881728). std::any, std::optional, and std::variant - std::variant The last part of this section deals with std::variant which allows us to create a variable from any of the types specified in the std::variant container. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5665338519715840). std::any, std::optional, and std::variant - std::optional std::optional is very convenient when the value of our object can be null or empty. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5704439901978624). Useful Functions - Swap Swapping is made simple in C++ using std::swap. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5153933542555648). Utilities - Utilities in C++ Standard Library In this part of the course, we will delve into some of the features that further enhance the the usability of C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5145639960707072). Overview - Multithreading Now, we will talk about how C++11 supports and implements multithreaded programming. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5684516622434304). Time Library - Clock Here, we briefly discuss the different types of clocks in C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5164407894048768). Application of Libraries - Using Namespaces Namespaces have to be written exactly as they are, however, the 'using' method allows us to make namespaces simpler. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5716883495976960). Smart Pointers - Shared Pointers Next, we have the shared pointer. It follows the principle of keeping a reference count to maintain the count of its copies. The lesson below elaborates further. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5755701410398208). Reference Wrappers - Introduction C++ takes reference functionality one step higher by introducing reference wrappers! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5739397714542592). Useful Functions - The min, max and minmax functions This family of functions allows us to find the minimum and maximum in a set of data. Let's find out how. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5749439348080640). Pairs and Tuples - Tuples Tuples extend the principles of a pair to a broader perspective. Find out more in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5672739822108672). Type Traits - Type Comparisons and Modifications Sometimes we need to manipulate or compare different types. We can use the type traits library for that! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5662346001252352). Time Library - Introduction This library gives us the power to run multithreads based on our time requirements. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5727357847470080). Smart Pointers - Cyclic References In this lesson, we'll see how the use of shared pointers can create a reference cycle and why this could be harmful. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/6312389301501952). Adaptors for Functions - std::bind and std::function Programmers can use this pair of utilities to create and bind functions to variables. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5657767566114816). Time Library - Time Point Now, we will study the first component of the chrono library. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5698358228287488). Pairs and Tuples - Pairs The idea of a pair of values often comes handy in programming. C++ allows us to make these pairs. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5733187191832576). Smart Pointers - Weak Pointers This is the last component of the smart pointer family. Its purpose is much more limited compared to the others. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5642795310120960). The Standard Library - Utilities To use C++ to its full potential, we must use the multitude of utilities it provides. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5630387149602816). The Standard Library - Components In this lesson, we'll examine the three basic elements which make C++ functional. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5708589914128384). The Standard Library - History Let's dive into some of the milestones in C++'s long history. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5761950587813888). Introduction - About this course Have questions about About this course? Go for it! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5679710554030080). Overview - Text Processing C++ handles text by using std::string and std::string_view utilities. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5741107111526400). Introduction - Source Examples There are a few things to remember while reading the coding sections. Have a look. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5663561476997120). Introduction - Conventions Here, I'm just listing down a few points about how the course content is structured. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5745337654312960). Introduction - Further Information Throughout the course, there will be links to help you understand the concept further. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5165671688175616). More Algorithms - Numeric The numeric library is host to several numeric functions. We'll look at a few of them in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5649221654937600). Sequential Containers - Forward Lists A forward list is the primitive form of the list structure we studied in the previous lesson. Nevertheless, forward lists are still useful. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5702369727741952). Strings - Size versus Capacity We'll test and alter the capacity of a string. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5090335545884672). Ordered Associative Containers - Overview Let's start our discussion on ordered associative containers by defining some simple characteristics. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5645036209307648). More Algorithms - Min and Max Let's take a look at the functions C++ provides to check the minimum and maximum in a range. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5740893436903424). Strings - Introduction In this chapter, we'll explore one of the most prominent classes in C++: Strings. Let's begin! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5673325816709120). More Algorithms - Permutations We can see the different permutations in a range using C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5132915046350848). Sequential Containers - Vectors A more refined version of arrays, vectors simplify insertion and deletion of values. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5693041058775040). Strings - Conversion Between C++ and C Strings There are several ways to convert C++ strings to C strings. Let's go through them now. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5755024684613632). Ordered Associative Containers - Keys and Values The properties of keys and values are listed below. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5744713810313216). Strings - Modifying Operations C++ gives us a variety of tools to modify and manipulate strings. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5154442227744768). Adaptors for Containers - Priority Queue By combining a queue and order, we get priority queues! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5680441772212224). Ordered Associative Containers - Special Search Functions The functions listed in this lesson make searching more efficient. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5697142752542720). Interface of All Containers - Access Have questions about Access? Go for it! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5723939053502464). Associative Containers - Insertion and Deletion In associative containers, values are inserted and deleted based on the keys they have. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5754837048229888). Ordered Associative Containers - Maps Now, we shall look at the features of std::map which make it such a popular container. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5762976011255808). Adaptors for Containers - Introduction In this section, we will tackle three advanced types of sequential containers which are built on std::deque. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5756875010211840). Adaptors for Containers - Stack It's time to study the behavior of this popular data structure. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5643814291111936). Unordered Associative Containers - The Hash Function Here, we will understand why hash functions are essential in unordered associative pairs. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5737324319080448). Unordered Associative Containers - Performance The unordered associative container type is more optimized compared to its ordered sibling. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5672109535657984). Associative Containers - Introduction After sequential containers, let's enter the world of associative containers and learn about the principle of key/value pairs. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5678365155524608). Sequential Containers - Deques Let's take a look at deques and their similarity to vectors. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5768151446847488). Interface of All Containers - Compare All the general comparison operators work on containers. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5135408274866176). Interface of All Containers - Size Let's find out how we can check the size and capacity of our container. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5650684091301888). Callable Units - Lambda Functions Lambda functions provide us all the functionality we need, on the go. They are faster than usual functions. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5658369935278080). Iterators - Categories Iterators can be categorized into three primary types, each with its own advantages. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5633772657573888). Algorithms - Conventions What are the rules and terminologies needed to run algorithms? Let's find out. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5691286564634624). Algorithms - Sequential, parallel, or parallel execution with vectorisation We will now learn how to execute our algorithm according to a certain execution policy. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5637925890949120). Iterators - Useful Functions C++ offers several tools to make the iteration process simpler yet safer. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5705584510763008). Non-Modifying Algorithms - Search Elements This lesson will cover the different ways of searching for values using 'find'. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5639189416640512). Iterators - Adaptors Iterators can do more than just search through data, they can now insert values! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5666380049285120). Algorithms - Introduction This chapter brings us to the various computing algorithms supported by C++17. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5188315829501952). Algorithms - for_each As the name suggests, this method picks up each value in our container and performs the desired action. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5671254837166080). Algorithms - Algorithms with Parallelized Versions A list of all the algorithms which can be parallelized. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5703552991232000). Non-Modifying Algorithms - Introduction Have questions about Introduction? Go for it! View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5736315001765888). Iterators - Introduction In this part of the course, we will learn to implement iterators and use them to traverse our data. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5765026858139648). Numeric - Functions Inherited from C As C++ evolved from C, many of the functions have been passed down to the new language. We'll discuss them in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5700882326880256). More Algorithms - Heaps This is another popular data structure implemented in C++ using an range. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5668772346068992). Strings - Search In this lesson, we'll examine the different search features available in the string class. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5748135557070848). Strings - Element Access Accessing a character in a string is very easy and similar to element access in arrays. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5709188793630720). Modifying Algorithms - Randomly Shuffle Ranges Rearrange the values in your range randomly, using std::random_shuffle and std::shuffle. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5116456731672576). Strings - Create and Delete Let's start things off by learning how to create and destroy strings. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5738360211505152). Modifying Algorithms - Reverse Ranges There were always roundabout ways of reversing a range. Now we have a predefined function to do that. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5745858419097600). Non-Modifying Algorithms - Compare Ranges The functions describe below allow us to check the degree of equality between ranges. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5720165924732928). Modifying Algorithms - Swap Ranges Along with moving data between ranges, we can also swap their values with one another. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5168674944057344). String View - Non-modifying operations In this lesson, we've listed down the non-modifying operations that can be performed on a string view. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5185185603649536). Regular Expressions - Introduction Now we move on to regular expressions in C++. Our first step will be to understand the purpose of this library. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5665032234860544). More Algorithms - Partition This algorithm allows us to divide or split ranges into separate sets. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5729193945989120). Modifying Algorithms - Rotate Ranges We can rotate our data such that every element now lies at a different index, which is decided by the rotation offset. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5124608579600384). New Algorithms with C++17 - Reduce We often need to reduce a numeric range. That is where std::reduce comes in handy. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5111762332418048). Modifying Algorithms - Replace Elements and Ranges Let's look at the functions we can use to update and replace values in ranges. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5752773316444160). Modifying Algorithms - Fill and Create Ranges Next in the line of modifying algorithms, we have the 'fill' and 'generate' functions. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5712529472880640). Modifying Algorithms - Transform Ranges Now we will study std::transform which is used to perform transformations on a range. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5679406685093888). String View - Introduction The string view class builds itself on the string class. It restricts the operations that can be performed on a string. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5727966390648832). String View - Create and initialise As always, let's start by creating a string view. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5698142137745408). More Algorithms - Sort Sorting and verifying the sortedness of your data has been made very easy in C++. Let's find out how. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5695864999772160). New Algorithms with C++17 - Scan Scan operations are useful when working with prefix sums. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5733695877021696). Modifying Algorithms - Move Ranges In C++, we can move data from one range to another. Read the lesson for more details. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5083308174082048). Multithreading - Atomic Data Types Now we will look at the atomic data types that C++ offers and their applications. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5645905134878720). Regular Expressions - Character Types This lesson will explain how regex identifies the different types of text in C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5743234999386112). File Systems - Filesystem library This newly added feature lets us interact with the directories and files on our system. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5196588741820416). File Systems - File types There is a wide variety of checks which we can use to get information about a file and the filesystem. They have been explained in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5674086025920512). Multithreading - Thread Local Data In this lesson, we will learn about data that is bound to the lifecycle of a thread. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5744294245695488). Regular Expressions - Repeated Search We will now introduce the concept of iterators in regular expressions. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5118527711215616). Input and Output Streams - Hierarchy In this lesson, we will get insight into the structure of input/output streams. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5071274481025024). Input and Output Streams - File Streams Now, we shall learn how to communicate with files using C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5679992679694336). Regular Expressions - Match We learned about std::match_results. Now, we will look at one of the functions which allow us to send data to match_results. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5684170609131520). Regular Expressions - Replace Along with searching, you can also alter the text if it matches your regex condition. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/4860533320712192). Input and Output Streams - Input and Output Functions Apart from 'cin' and 'cout', there are many other functions we can use to perform input/output operations. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5759538695241728). File Systems - Classes Let's take a look at the different components of the filesystem library. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/6312949526298624). Multithreading - Memory Model Learn about multithreading in the C++ Standard Library and its memory model. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5754069591261184). Input and Output Streams - Iostream The most frequently used read/write stream is iostream. We'll look at the implementation shortly. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5146238840209408). Regular Expressions - Search In this lesson, we'll see the implementation of the second look-up function for regex statements: regex_search. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5094553203769344). Input and Output Streams - State of the Stream Are there tools we can use in C++ which allow us to check the current condition of the stream? Flags answer this question. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5712290833760256). File Systems - Non-member functions Apart from the classes, C++ has pre-defined functions to help us fully use filesystem library. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5713290487398400). Multithreading - Shared Variables Now that we've learnt about threads, let's discuss information sharing between them. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5678460986982400). Multithreading - Condition Variables Let's talk about condition variables that enable threads to wait until a particular condition occurs. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5663961177391104). Multithreading - Tasks Now that we've learned about threads, let's discuss tasks for asynchronous programming. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5173192444346368). Regular Expressions - Format Regular expressions can also specify the format of the target text. Find the implementation below. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/4787278358511616). Input and Output Streams - String Streams The string stream family lets us store and manipulate strings. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5646766812692480). std::any, std::optional, and std::variant - std::any C++17 allows us to put our value in a safe container which can be accessed only when its type is specified. Welcome to std::any. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5632731128004608). Non-Modifying Algorithms - Search for Ranges within Ranges Need to acquire a sub-range from your existing range? std::search solves the problem efficiently. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5731624897478656). Unordered Associative Containers - Overview The main difference between unordered and ordered associative containers is the idea of sorted keys. Let's find out how unordered containers handle keys. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5711487943311360). Numeric - Random Numbers There's a whole library dedicated to the generation and usage of random numbers. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5693357544177664). Strings - Comparison and Concatenation Can we merge and compare strings like we did with ranges? This lesson shows us how. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5643355534917632). Interface of All Containers - Introduction This chapter deals with the different features that are present in all types of containers in C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5743541284241408). Callable Units - Introduction Functions, function objects and lamda functions are all part of the callable units class. They are 'called' to retrieve data or perform an action. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5674712285839360). Regular Expressions - The Search Result Whenever we verify whether a piece of text satisfies our regular expression, we have to store the results somewhere. std::match_results allows us to do just that. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5723065832964096). Introduction - C++ versus C++11 This lesson talks about how C++11 was a big step in the evolution of C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5696117329100800). Overview - Numeric Functions Numerical computations are very powerful in programming, and C++ provides a diverse range of mathematical functions. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5668251581284352). Application of Libraries - Introduction In this lesson, we'll define the three steps needed to use libraries in C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5757771584634880). Application of Libraries - Including Header Files The first step in using libraries is to include the header files. Let's find out how. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5638680731451392). Sequential Containers - Arrays The array type is perhaps the most popular sequential container. This lesson will cover its properties in detail. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5732245520252928). Ordered Associative Containers - The Comparison Criterion This lesson talks about the rules followed by ordered associative containers when comparing the values inside them. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5729801683861504). Unordered Associative Containers - The Details We'll finish this section by learning some terminologies present in unordered associative containers. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5652249606881280). Application of Libraries - Building an Executable In this lesson, we'll briefly examine the final step of library usage: linking our executable with libraries. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5677627494891520). Algorithms - Iterators are the glue Without iterators, there would be no way for us to move through the container and alter it according the algorithm. Hence, the iterator forms the backbone of this is process. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5769180091514880). Non-Modifying Algorithms - Check Conditions on Ranges C++17 contains several algorithms to check whether a value or values in a range fulfill our given condition. Let's look at these algorithms now. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5091382712598528). String View - Modifying operations There are a few modifying operations that a string view can perform. Some of these are unique to string views only. Let's check them out. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5187049619456000). Adaptors for Functions - Behavior of std::bind and std::function Let's take a step deeper into the workings of std::bind and std::function. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5178157158105088). Sequential Containers - Lists C++ supports the linked list data structure and provides additional methods to improve the list's functionality. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5636897246281728). Modifying Algorithms - Remove Elements and Ranges Apart from insertion, copying and replacement, we can also delete elements completely. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5646258127503360). Modifying Algorithms - Remove Duplicates Next, we'll study ways to make sure each element in our range is unique. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5662536053555200). Regular Expressions - Regular Expression Objects Let's take a look at the various types and grammars which C++ provides for regex objects. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5651253979774976). Input and Output Streams - User-defined Data Types We can also set our own preferences for the input and output operators. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5745207463116800). Multithreading - Threads Let's dive into C++ threads and their lifecycle. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5711119918301184). Smart Pointers - Introduction This section will deal which a very powerful new category called smart pointers. Let's begin. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5719228548120576). Unordered Associative Containers - Keys and Values This lesson is about the different properties of keys and values in this type of associative containers. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5701515029250048). More Algorithms - Merge Operations In this lesson, we'll learn different ways of combining ranges. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5707667569901568). Input and Output Streams - Format Specifier Since we're tackling text, it would only be appropriate to have tools which can help us format our our data. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5102082281439232). Type Traits - Introduction The type traits library helps us optimize our code. This section will cover the library in depth. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5681793613168640). Interface of All Containers - Create and Delete Below, we examine the different methods available for constructing/destroying containers with particular parameters. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5201035375149056). Non-Modifying Algorithms - Count Elements Count algorithms assist us in counting the number of elements in a range which satisfy a certain predicate. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5654332666019840). Modifying Algorithms - Copy Elements and Ranges Learn how to perform various copy operations on a given range. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5687558533021696). More Algorithms - Binary Search The fast search which has a search time of O(log n) has been predefined in C++. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5095419981856768). Strings - Input and Output Strings are well-known for their use in input and output of data. Let's look at how this is done. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5681477664636928). Time Library - Time Duration The time duration is a measure of how many ticks have passed since a certain time point. The implementation is presented in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5763985328570368). Sequential Containers - Introduction The first category of containers we'll study are the sequential containers. Listed below are the major features for various types of sequential containers. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5659815191773184). Iterators - Iterator Creation In this lesson, we'll observe how a map creates and handles its iterator. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5097528810799104). Strings - Numeric Conversions Apart from conversion to C string, a string can also be converted to a float. View the lesson [here](https://www.educative.io/collection/page/10370001/5712008708096000/5661617735860224).
About the C++ Standard Library including C++ 14 & C++ 17 (Rainer Grimm) category [C++ Standard Library including C++ 14 & C++ 17 (Rainer Grimm)] (1)
Doubt in the move line [Interface of All Containers - Assign and Swap] (4)