1. C++17 STL Cookbook: Discover the latest enhancements to functional programming and lambda expressions (2017)
- 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.
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
- The New C++17 Features
- STL Containers
- Lambda Expressions
- STL Algorithm Basics
- Advanced Use of STL Algorithms
- Strings, Stream Classes, and Regular Expressions
- Utility Classses
- Parallelism and Concurrency
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)
Author(s): Mr Clarence T Jones
3. STL Programming from the Ground Up (1998)
Author(s): Herbert Schildt
Author(s): Matthew H. Austern
“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
- 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
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
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
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
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
–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.
* 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