Quick Guide to the C++ Standard Library

Oct 30, 2018 - 5 min read
Educative
editor-page-cover

With a lot of attention focused on newer object-oriented languages like Python, you might not think C++ is used for much any more.

Wrong!

The truth is C++ is still in demand by top tech companies across the world. Employers are specifically interested in applicants with a strong understanding of optimization through the standard library.

Today, we’ll walk through what the standard library can do for you and some top library components to use in your next project.

Here’s what we’ll cover today:



Optimize your C++ skills

Master the Standard Library with interactive, text-based lessons.

C++ Standard Library including C++ 14 & C++ 17



Are developers even learning C++ anymore?

Developed by Bjarne Stroustrup at Bell Labs in 1979, C++ is the foundation for a lot of technology. Windows, Mac OS, and many of their desktop apps are written in C++. Also, all JavaScript runs on an engine written in C++.

Programming languages like Python may be steadily rising in popularity, but C++ is faster than any of them. C++ is very close to the hardware level, making it the best programming language for making hardware run faster.

For big companies like Google and Facebook, just a 10% increase in server performance is a big savings in electricity alone. These companies (no matter what the new, popular object-oriented programming language they use) continue to hire C++ programmers to optimize their back ends, and solve scaling issues.

Yep, knowing C++ could land you a job at Google or Facebook.


What is the C++ Standard Library?

The C++ Standard Library is a reference to help you at every step of your projects related to system programming.

Even if you’re proficient in core C++, understanding the Standard Library will make you a valuable programmer. It allows you to:

  • Simplify your code. You don’t need to go out of your way to create new classes and functions that require a lot of extra code.
  • Write cleaner, faster code. Even advanced programmers can make simple mistakes when writing functions. Using the Standard Library guarantees your code will run proficiently.
  • Avoid maintenance problems. Sticking to the Standard Library makes testing a lot less stressful. If something you write yourself gets ingrained into the entirety of your code and you find a bug, it’s going to take a lot longer to go through your non-standardized code.

The code in the Standard Library is tested by hundreds of thousands of people and gets subjected to more testing and scrutiny than anything you’d implement yourself.

The Standard Library was developed by the greatest minds in C++ over the past few decades. You are guaranteed good performance, no bugs, and solutions that have been tested and re-tested for decades.

Go with the tried-and-true.


Tools in the Standard Library

svg viewer

The C++ Standard Library can be categorized into 3 components: containers, iterators, and algorithms.

The containers store collections of other objects, and replicate structures used over and over again in programming (arrays, queues, stacks, etc.). The algorithms can be used on ranges of elements. And the iterators are like the glue that binds the containers and algorithms — they’re used to move forward, backward, or to an arbitrary position in the container.

Here’s an extensive list of items in the C++ Standard Library:

  • Concepts: These provide a foundation for equational reasoning in programs.
  • Utilities: General purpose utilities for program control, dynamic memory management, numeric limits, error handling, and more.
  • Strings: Functions to handle wide and multibyte strings, and determine the type contained in character data.
  • Containers: Containers for arrays, vectors, and lists. Associative containers. Stack and queue container adaptors.
  • Algorithms: Algorithms that operate on containers, plus predefined execution policies for parallel versions of the algorithms.
  • Iterators: Definitions for six kinds of iterators, as well as iterator traits, adaptors, and utility functions.
  • Numerics: Common math functions, classes for representing complex numbers and arrays, random number generators, rational arithmetic and more.
  • Input/Output: Forward declarations of all classes in the input/output library. Assorted input/output class templates.
  • Localization: Localization support for character classification and string collation, numeric, monetary, date/time formatting and parsing, and message retrieval.
  • Regular Expressions: Classes, algorithms and iterators to support regular expression processing.
  • Atomic Operations: Components for fine-grained atomic operations, which allow for lockless concurrent programming.
  • Thread Support: Class and supporting functions for threads, mutual exclusion primitives, primitives for asynchronous computations, and thread-waiting conditions.
  • File System: Supporting functions for performing operations on file systems and their components (like paths, regular files, and directories).
  • Experimental Libraries: Extra additions to the library, including extensions for parallelism and concurrency

What to learn next

Each of library components have their own benefits to your programs. As you continue your C++ journey, you should learn to implement advanced library tools like:

  • Vectors
  • Time Points
  • Maps
  • Priority queue
  • Lambda functions

To help you master these library components, Educative has created C++ Standard Library including C++ 14 & C++ 17. This course will teach you to implement every all the most important library components and introduce you to C++ changes in V14 and V17. By the end, you’ll have the hands-on experience to manipulate and utilize the Standard Library in your own C++ programs.


WRITTEN BYEducative

A free, bi-monthly email with a roundup of Educative's top articles and coding tips.