cta quote button

Best STL Books that You Should Have on Your Bookshelf

Read More

How Much Does It Cost to Hire Web Developers in Ukraine?

Our pricing is completely transparent: you pay your engineers’ salaries and a flat monthly fee for our services. No hidden charges.

Read More

1. C++17 STL Cookbook: Discover the latest enhancements to functional programming and lambda expressions (2017)

Key Features

  • Learn the latest features of C++ and how to write better code by using the Standard Library (STL). Reduce the development time for your applications.
  • Understand the scope and power of STL features to deal with real-world problems.
  • Compose your own algorithms without forfeiting the simplicity and elegance of the STL way.

Book Description

C++ has come a long way and is in use in every area of the industry. Fast, efficient, and flexible, it is used to solve many problems. The upcoming version of C++ will see programmers change the way they code. If you want to grasp the practical usefulness of the C++17 STL in order to write smarter, fully portable code, then this book is for you.

Beginning with new language features, this book will help you understand the language’s mechanics and library features, and offers insight into how they work. Unlike other books, ours takes an implementation-specific, problem-solution approach that will help you quickly overcome hurdles. You will learn the core STL concepts, such as containers, algorithms, utility classes, lambda expressions, iterators, and more, while working on practical real-world recipes. These recipes will help you get the most from the STL and show you how to program in a better way.

By the end of the book, you will be up to date with the latest C++17 features and save time and effort while solving tasks elegantly using the STL.

What you will learn

  • Learn about the new core language features and the problems they were intended to solve
  • Understand the inner workings and requirements of iterators by implementing them
  • Explore algorithms, functional programming style, and lambda expressions
  • Leverage the rich, portable, fast, and well-tested set of well-designed algorithms provided in the STL
  • Work with strings the STL way instead of handcrafting C-style code
  • Understand standard support classes for concurrency and synchronization, and how to put them to work
  • Use the filesystem library addition available with the C++17 STL

About the Author

Jacek Galowicz obtained his master of science in electrical engineering/computer engineering at RWTH Aachen University, Germany. While at university, he enjoyed working as a student assistant in teaching and research, and he participated in several scientific publications. During and after his studies, he worked as a freelancer and implemented applications as well as kernel drivers in C and C++, touching various areas, including 3D graphics programming, databases, network communication, and physics simulation. In recent years, he has been programming performance- and security-sensitive microkernel operating systems for Intel x86 virtualization at Intel and FireEye in Braunschweig, Germany. He has a strong passion for modern C++ implementations of low-level software, and he tries hard to combine high performance with an elegant coding style. Learning purely functional programming and Haskell in recent years triggered his drive to implement generic code with the aid of meta programming.

Table of Contents

  1. The New C++17 Features
  2. STL Containers
  3. Iterators
  4. Lambda Expressions
  5. STL Algorithm Basics
  6. Advanced Use of STL Algorithms
  7. Strings, Stream Classes, and Regular Expressions
  8. Utility Classses
  9. Parallelism and Concurrency
  10. Filesystem

Author(s): Jacek Galowicz

2. STEP 7 Programming Made Easy in LAD, FBD, and STL: A Practical Guide to Programming S7300/S7-400 Programmable Logic Controllers (2013)

Finally – programming STEP 7 in LAD, FBD, and STL is made crystal clear! STEP 7 Programming Made Easy is designed to introduce and thoroughly cover every important aspect of developing STEP 7 programs in LAD, FBD, and STL. You’ll learn to correctly apply and develop your STEP 7 program, using S7 resources from addressing S7 memory areas and I/O modules, to using Functions, Function Blocks, Organization Blocks, and System Blocks. With more than 500 illustrations and examples, understanding STEP 7 is certainly made easy! Now, with both STEP 7 Programming Made Easy and STEP 7 in 7 Steps, a Siemens S7 developer has all the needed tools to get the job done! Book Highlights – 560 pages – Appendix, glossary, and Index – Extensive review of absolute, indirect, and symbolic addressing – Thorough description of S7 data types and data formats – Complete S7-300/S7-400 I/O module addressing – Full description of each LAD, FBD, and STL operation – Organization block application and descriptions – Over 500 detailed illustrations and code examples – Step-by-step details for developing FCs and FBs – Step-by-step strategy for developing STEP 7 program – Concise and easily read language

Author(s): Mr Clarence T Jones

3. STL Programming from the Ground Up (1998)

With more than 1.5 million programming books sold, author Herb Schildt helps employees of many world-wide institutions and corporations learn STL programming. Start off with the basic history of the Standard Template (STL) and its recent standardization, and finish with a complete understanding of the advanced power and versatility behindthe STL code. Thorough coverage of how STL simplifies development using C++ templates for container classes–illustrating why STL code is easy-to-read, fast, and highly customizable.

Author(s): Herbert Schildt

4. Generic Programming and the STL: Using and Extending the C++ Standard Template Library (1999)

Many programmers are unaware that C++ is more than an object-oriented language. C++ is also a language for generic programming, a methodology that can greatly enhance your ability to write efficient and reusable software components.

Author(s): Matthew H. Austern

5. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library (2001)

“This is Effective C++ volume three – it’s really that good.”
– Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee
“There are very few books which all C++ programmers must have. Add Effective STL to that list.”
– Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal

C++’s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts – the things they almost always do or almost always avoid doing – to get the most out of the library.

Other books describe what’s in the STL. Effective STL shows you how to use it. Each of the book’s 50 guidelines is backed by Meyers’ legendary analysis and incisive examples, so you’ll learn not only what to do, but also when to do it – and why.

Highlights of Effective STL include:

  • Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset).
  • Techniques to maximize the efficiency of the STL and the programs that use it.
  • Insights into the behavior of iterators, function objects, and allocators, including things you should not do.
  • Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways.
  • Discussions of potential portability problems, including straightforward ways to avoid them.

Like Meyers’ previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.

Author(s): Scott Meyers

6. Mastering the C++17 STL: Make full use of the standard library components in C++17 (2017)

Key Features

  • Boost your productivity as a C++ developer with the latest features of C+ +17
  • Develop high-quality, fast, and portable applications with the varied features of the STL
  • Migrate from older versions (C++11, C++14) to C++17

Book Description

Modern C++ has come a long way since 2011. The latest update, C++17, has just been ratified and several implementations are on the way.

This book is your guide to the C++ standard library, including the very latest C++17 features.

The book starts by exploring the C++ Standard Template Library in depth. You will learn the key differences between classical polymorphism and generic programming, the foundation of the STL. You will also learn how to use the various algorithms and containers in the STL to suit your programming needs. The next module delves into the tools of modern C++. Here you will learn about algebraic types such as std::optional, vocabulary types such as std::function, smart pointers, and synchronization primitives such as std::atomic and std::mutex. In the final module, you will learn about C++’s support for regular expressions and file I/O.

By the end of the book you will be proficient in using the C++17 standard library to implement real programs, and you’ll have gained a solid understanding of the library’s own internals.

What you will learn

  • Make your own iterator types, allocators, and thread pools.
  • Master every standard container and every standard algorithm.
  • Improve your code by replacing new/delete with smart pointers.
  • Understand the difference between monomorphic algorithms, polymorphic algorithms, and generic algorithms.
  • Learn the meaning

Author(s): Arthur O’Dwyer

7. C++ Pocket Reference (2003)

C++ is a complex language with many subtle facets. This is especially true when it comes to object-oriented and template programming. The C++ Pocket Reference is a memory aid for C++ programmers, enabling them to quickly look up usage and syntax for unfamiliar and infrequently used aspects of the language. The book’s small size makes it easy to carry about, ensuring that it will always be at-hand when needed. Programmers will also appreciate the book’s brevity; as much information as possible has been crammed into its small pages.In the C++ Pocket Reference, you will find:

  • Information on C++ types and type conversions
  • Syntax for C++ statements and preprocessor directives
  • Help declaring and defining classes, and managing inheritance
  • Information on declarations, storage classes, arrays, pointers, strings, and expressions
  • Refreshers on key concepts of C++ such as namespaces and scope
  • More!

C++ Pocket Reference is useful to Java and C programmers making the transition to C++, or who find themselves occasionally programming in C++. The three languages are often confusingly similar. This book enables programmers familiar with C or Java to quickly come up to speed on how a particular construct or concept is implemented in C++.Together with its companion STL Pocket Reference, the C++ Pocket Reference forms one of the most concise, easily-carried, quick-references to the C++ language available.

Author(s): Kyle Loudon

8. STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library (paperback) (2nd Edition) (Addison-Wesley Professional Computing Series) (2001)

“The second edition is clearer and adds more examples on how to use STL in a practical environment. Moreover, it is more concerned with performance and tools for its measurement. Both changes are very welcome.”
–Lawrence Rauchwerger, Texas A&M University
“So many algorithms, so little time! The generic algorithms chapter with so many more examples than in the previous edition is delightful! The examples work cumulatively to give a sense of comfortable competence with the algorithms, containers, and iterators used.”
–Max A. Lebow, Software Engineer, Unisys Corporation

The STL Tutorial and Reference Guide is highly acclaimed as the most accessible, comprehensive, and practical introduction to the Standard Template Library (STL). Encompassing a set of C++ generic data structures and algorithms, STL provides reusable, interchangeable components adaptable to many different uses without sacrificing efficiency. Written by authors who have been instrumental in the creation and practical application of STL, STL Tutorial and Reference Guide, Second Edition includes a tutorial, a thorough description of each element of the library, numerous sample applications, and a comprehensive reference.

You will find in-depth explanations of iterators, generic algorithms, containers, function objects, and much more. Several larger, non-trivial applications demonstrate how to put STL's power and flexibility to work. This book will also show you how to integrate STL with object-oriented programming techniques. In addition, the comprehensive and detailed STL reference guide will be a constant and convenient companion as you learn to work with the library.

This second edition is fully updated to reflect all of the changes made to STL for the final ANSI/ISO C++ language standard. It has been expanded with new chapters and appendices. Many new code examples throughout the book illustrate individual concepts and techniques, while larger sample programs demonstrate the use of the STL in real-world C++ software development. An accompanying Web site, including source code and examples referenced in the text, can be found at http://www.cs.rpi.edu/~musser/stl-book/index.html.

Author(s): David R. Musser, Gillmer J. Derge

9. C++ in One Hour a Day, Sams Teach Yourself (8th Edition) (2016)

In just one hour a day, you’ll have all the skills you need to begin programming in C++. With this complete tutorial, you’ll quickly master the basics, and then move on to more advanced features and concepts. Completely updated for the C++14 standard, with a preview of C++17, this book presents the language from a practical point of view, helping you learn how to use C++ to create faster, simpler, and more efficient C++ applications.

  • Master the fundamentals of C++ and object-oriented programming
  • Understand how C++ features help you write compact and efficient code using concepts such as lambda expressions, move constructors, and assignment operators
  • Learn best practices and avoid pitfalls via useful Do’s and Don’ts 
  • Learn the Standard Template Library, including containers and algorithms used in most real-world C++ applications
  • Test your knowledge and expertise with exercises at the end of every lesson 

Learn on your own time, at your own pace:

  • No previous programming experience required
  • Write fast and powerful C++ programs, compile the source code, and create executable files
  • Learn object-oriented programming concepts such as encapsulation, abstraction, inheritance, and polymorphism
  • Use the Standard Template Library’s algorithms and containers to write feature-rich yet stable C++ applications
  • Learn how automatic type deduction helps simplify C++ code
  • Develop sophisticated programming techniques using lambda expressions, smart pointers, and move constructors
  • Master the features of C++ by learning from programming experts
  • Learn C++ features that allow you to program compact and high-performance C++ applications
  • Preview what’s new in C++17

Contents at a Glance

Part I: The Basics

Lesson 1: Getting Started

Lesson 2: The Anatomy of a C++ Program

Lesson 3: Using Variables, Declaring Constants

Lesson 4: Managing Arrays and Strings

Lesson 5: Working with Expressions, Statements, and Operators

Lesson 6: Controlling Program Flow

Lesson 7: Organizing Code with Functions

Lesson 8: Pointers and References Explained

Part II: Fundamentals of Object-Oriented C++ Programming

Lesson 9: Classes and Objects

Lesson 10: Implementing Inheritance

Lesson 11: Polymorphism

Lesson 12: Operator Types and Operator Overloading

Lesson 13: Casting Operators

Lesson 14: An Introduction to Macros and Templates

Part III: Learning the Standard Template Library (STL)

Lesson 15: An Introduction to the Standard Template Library

Lesson 16: The STL String Class

Lesson 17: STL Dynamic Array Classes

Lesson 18: STL list and forward_list

Lesson 19: STL Set Classes 

Lesson 20: STL Map Classes

Part IV: More STL

Lesson 21: Understanding Function Objects

Lesson 22: Lambda Expressions 

Lesson 23: STL Algorithms

Lesson 24: Adaptive Containers: Stack and Queue

Lesson 25: Working with Bit Flags Using STL

Part V: Advanced C++ Concepts

Lesson 26: Understanding Smart Pointers

Lesson 27: Using Streams for Input and Output 

Lesson 28: Exception Handling

Lesson 29: Going Forward

Part VI: Appendixes

Appendix A: Working with Numbers: Binary and Hexadecimal

Appendix B: C++ Keywords

Appendix C: Operator Precedence

Appendix D: ASCII Codes

Appendix E: Answers

Author(s): Siddhartha Rao

10. C++ Primer Plus (6th Edition) (Developer’s Library) (2011)

C++ Primer Plus, Sixth Edition

New C++11 Coverage


C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.

The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.

Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.

Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.

In C++ Primer Plus, you’ll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:

  • A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard
  • Complete, integrated discussion of both basic C language and additional C++ features
  • Clear guidance about when and why to use a feature
  • Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time
  • Hundreds of practical sample programs
  • Review questions and programming exercises at the end of each chapter to test your understanding
  • Coverage of generic C++ gives you the greatest possible flexibility
  • Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Table of Contents

1: Getting Started with C++

2: Setting Out to C++

3: Dealing with Data

4: Compound Types

5: Loops and Relational Expressions

6: Branching Statements and Logical Operators

7: Functions: C++’s Programming Modules

8: Adventures in Functions

9: Memory Models and Namespaces

10: Objects and Classes

11: Working with Classes

12: Classes and Dynamic Memory Allocation

13: Class Inheritance

14: Reusing Code in C++

15: Friends, Exceptions, and More

16: The string Class and the Standard Template Library

17: Input, Output, and Files

18: The New C++11 Standard

A Number Bases

B C++ Reserved Words

C The ASCII Character Set

D Operator Precedence

E Other Operators

F The stringTemplate Class

G The Standard Template Library Methods and Functions

H Selected Readings and Internet Resources

I Converting to ISO Standard C++

J Answers to Chapter Reviews

Author(s): Stephen Prata

11. Design for 3D Printing: Scanning, Creating, Editing, Remixing, and Making in Three Dimensions (2015)

France’s Le FabShop has extensive experience testing 3D printers and creating digital models for them. From an articulated Makey Robot to a posable elephant model, Samuel N. Bernier and the rest of Le FabShop’s team have created some of the most-printed designs in the 3D printing world. This book uses their work to teach you how to get professional results out of a desktop 3D printer without needing to be trained in design. Through a series of tutorials and case studies, this book gives you the techniques to turn a product idea into a 3D model and a prototype. Focusing on free design software and affordable technologies, the exercises in this book are the perfect boost to any beginner looking to start designing for 3D printing.

Designing for the tool and finding a good tool to fit the design–these are at the core of the product designer’s job, and these are the tools this book will help you master.

Foreword by Carl Bass, Autodesk’s CEO, a passionate and prolific Maker.

In Design For 3D Printing, you’ll:

  • Learn the different 3D printing technologies
  • Choose the best desktop 3D printer
  • Discover free 3D modeling software
  • Become familiar with 3D scanning solutions
  • Find out how to go from a bad to a good 3D source file, one that’s ready-to-print

Author(s): Samuel N. Bernier, Bertier Luyt

12. Objects, Abstraction, Data Structures and Design: Using C++ (2005)

“It is a practical book with emphasis on real problems the programmers encounter daily.”
–Dr.Tim H. Lin, California State Polytechnic University, Pomona

“My overall impressions of this book are excellent. This book emphasizes the three areas I want: advanced C++, data structures and the STL and is much stronger in these areas than other competing books.”
–Al Verbanec, Pennsylvania State University

Think, Then Code

When it comes to writing code, preparation is crucial to success. Before you can begin writing successful code, you need to first work through your options and analyze the expected performance of your design. That’s why Elliot Koffman and Paul Wolfgang’s Objects, Abstraction, Data Structures, and Design: Using C++ encourages you to Think, Then Code, to help you make good decisions in those critical first steps in the software design process.

The text helps you thoroughly understand basic data structures and algorithms, as well as essential design skills and principles. Approximately 20 case studies show you how to apply those skills and principles to real-world problems. Along the way, you’ll gain an understanding of why different data structures are needed, the applications they are suited for, and the advantages and disadvantages of their possible implementations.

Key Features
* Object-oriented approach.
* Data structures are presented in the context of software design principles.
* 20 case studies reinforce good programming practice.
* Problem-solving methodology used throughout… “Think, then code!”
* Emphasis on the C++ Standard Library.
* Effective pedagogy.

Author(s): Elliot B. Koffman, Paul A. T. Wolfgang