About: Standard Template Library is a research topic. Over the lifetime, 282 publications have been published within this topic receiving 12844 citations. The topic is also known as: STL & C++ Programming/STL.
TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
Abstract: From the Publisher:
Written by Bjarne Stroustrup, the creator of C, this is the world's most trusted and widely read book on C.
For this special hardcover edition, two new appendixes on locales and standard library exception safety have been added. The result is complete, authoritative coverage of the C language, its standard library, and key design techniques. Based on the ANSI/ISO C standard, The C Programming Language provides current and comprehensive coverage of all C language features and standard library components.
For example:
abstract classes as interfaces class hierarchies for object-oriented programming templates as the basis for type-safe generic software exceptions for regular error handling namespaces for modularity in large-scale software run-time type identification for loosely coupled systems the C subset of C for C compatibility and system-level work standard containers and algorithms standard strings, I/O streams, and numerics C compatibility, internationalization, and exception safety
Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
TL;DR: This thoroughly up-to-date book reflects the newest elements of the C++ standard library incorporated into the full ANSI/ISO C++ language standard, and focuses on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms.
Abstract: The C++ standard library provides a set of common classes and interfaces that greatly extend the core C++ language. The library, however, is not self-explanatory. To make full use of its components-and to benefit from their power-you need a resource that does far more than list the classes and their functions.The C++ Standard Library not only provides comprehensive documentation of each library component, it also offers clearly written explanations of complex concepts, describes the practical programming details needed for effective use, and gives example after example of working code.This thoroughly up-to-date book reflects the newest elements of the C++ standard library incorporated into the full ANSI/ISO C++ language standard. In particular, the text focuses on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms. You will also find detailed coverage of special containers, strings, numerical classes, internationalization, and the IOStream library. Each component is presented in depth, with an introduction to its purpose and design, examples, a detailed description, traps and pitfalls, and the exact signature and definition of its classes and their functions. An insightful introduction to fundamental concepts and an overview of the library will help bring newcomers quickly up to speed.Comprehensive, detailed, readable, and practical, The C++ Standard Library is the C++ resource you will turn to again and again. An accompanying Web site, including source code, can be found at http://www.josuttis.com/. 0201379260B04062001
TL;DR: This book is the definitive reference on C++ programming using STL, as it was written by the team that created the library, and includes background, a review of the standard, using the component, implementing the component.
Abstract: From the Publisher:
Standard Template Libraries (STL) were created to provide C++ programmers with a suite of reusable programs, or lines of code, that could be used by everyone to increase programming productivity and quality. This book is the definitive reference on C++ programming using STL, as it was written by the team that created the library. Every C++ programmer will need at least one off-the-shelf STL reference guide. Each chapter covers one STL component, and includes background, a review of the standard, using the component, implementing the component, and exercises. For C++ Software Development Managers and C++ programmers at all levels.
TL;DR: A tour of the STL and advice for Defining an Iterator Adaptors, which focuses on the Hierarchy of Containers and the role of the Iterator Tag Classes.
Abstract: Preface. I. INTRODUCTION TO GENERIC PROGRAMMING. 1. A Tour of the STL. A Simple Example. Summary. 2. Algorithms and Ranges. Linear Search. Linear Search in C. Ranges. Linear Search in C++. Concepts and Modeling. Iterators. Input Iterators. Output Iterators. Forward Iterators. Bidirectional Iterators. Random Access Iterators. Refinement. Summary. 3. More about Iterators. Iterator Traits and Associated Types. Value Types. Difference Type. Reference and Pointer Types. Dispatching Algorithms and Iterator Tags. Putting It All Together. Iterator Traits without iterator_traits. Defining New Components. Iterator Adaptors. Advice for Defining an Iterator. Advice for Defining an Algorithm. Summary. 4. Function Objects. Generalizing Linear Search. Function Object Concepts. Unary and Binary Function Objects. Predicates and Binary Predicates. Associated Types. Function Object Adaptors. Predefined Function Objects. Summary. 5. Containers. A Simple Container. An Array Class. How It Works. Finishing Touches. Container Concepts. Containment of Elements. Iterators. The Hierarchy of Containers. The Trivial Container. Variable Size Container Concepts. Sequences. Associative Containers. Allocators. Summary. Which Container Should You Use? Defining Your Own Container. II. REFERENCE MANUAL: STL CONCEPTS. 6. Basic Concepts. Assignable. Default Constructible. Equality Comparable. Ordering. LessThan Comparable. Strict Weakly Comparable. 7. Iterators. Trivial Iterator. Input Iterator. Output Iterator. Forward Iterator. Bidirectional Iterator. Random Access Iterator. 8. Function Objects. Basic Function Objects. Generator. Unary Function. Binary Function. Adaptable Function Objects. Adaptable Generator. Adaptable Unary Function. Adaptable Binary Function. Predicates. Predicate. Binary Predicate. Adaptable Predicate. Adaptable Binary Predicate. Strict Weak Ordering. Specialized Concepts. Random Number Generator. Hash Function. 9. Containers. General Container Concepts. Container. Forward Container. Reversible Container. Random Access Container. Sequences. Sequence. Front Insertion Sequence. Back Insertion Sequence. Associative Containers. Associative Container. Unique Associative Container. Multiple Associative Container. Simple Associative Container. Pair Associative Container. Sorted Associative Container. Hashed Associative Container. Allocator. III. REFERENCED MANUAL: ALGORITHMS AND CLASSES. 10. Basic Components. pair. Iterator Primitives. iterator_traits. Iterator Tag Classes. distance. advance. Iterator Base Class. allocator. Memory Management Primitives. construct. destroy. uninitialized_copy. uninitialized_fill. uninitialized_fill_n. Temporary Buffers. get_temporary_buffer. return_temporary_buffer. 11. Nonmutating Algorithms. Linear Search. find. find_if. adjacent_find. find_first_of. Subsequence Matching. search. find_end. search_n. Counting Elements. count. count_if. for_each. Comparing Two Ranges. equal. mismatch. lexicographical_compare. Minimum and Maximum. min. max. min_element. max_element. 12. Basic Mutating Algorithms. Copying Ranges. copy. copy_backward. Swapping Elements. swap. iter_swap. swap_ranges. transform. Replacing Elements. replace. replace_if. replace_copy. replace_copy_if. Filling Ranges. fill. fill_n. generate. generate_n. Removing Elements. remove. remove_if. remove_copy. remove_copy_if. unique. unique_copy. Permuting Algorithms. reverse. reverse_copy. rotate. rotate_copy. next_permutation. prev_permutation. Partitions. partition. stable_partition. Random Shuffling and Sampling. random_shuffle. random_sample. random_sample_n. Generalized Numeric Algorithms. accumulate. inner_product. partial_sum. adjacent_difference. 13. Sorting and Searching. Sorting Ranges. sort. stable_sort. partial_sort. partial_sort_copy. nth_element. is_sorted. Operations on Sorted Ranges. Binary Search. Merging Two Sorted Ranges. Set Operations on Sorted Ranges. Heap Operations. make_heap. push_heap. pop_heap. sort_heap. is_heap. 14. Iterator Classes. Insert Iterators. front_insert_iterator. back_insert_iterator. insert_iterator. Stream Iterators. istream_iterator. ostream_iterator. istreambuf_iterator. ostreambuf_iterator. reverse_iterator. raw_storage_iterator. 15. Function Object Classes. Function Object Base Classes. unary_function. binary_function. Arithmetic Operations. plus. minus. multiplies. divides. modulus. negate. Comparisons. equal_to. not_equal_to. less. greater. less_equal. greater_equal. Logical Operations. logical_and. logical_or. logical_not. Identity and Projection. identity. project1st. project2nd. select1st. select2nd. Specialized Function Objects. hash. subtractive_rng. Member Function Adaptors. mem_fun_t. mem_fun_ref_t. mem_fun1_t. mem_fun1_ref_t. const_mem_fun_t. const_mem_fun_ref_t. const_mem_fun1_t. const_mem_fun1_ref_t. Other Adaptors. binder1st. binder2nd. pointer_to_unary_function. pointer_to_binary_function. unary_negate. binary_negate. unary_compose. binary_compose. 16. Container Classes. Sequences. vector. list. slist. deque. Associative Containers. set. map. multiset. multimap. hash_set. hash_map. hash_multiset. hash_multimap. Container Adaptors. stack. queue. priority_queue. Appendix A. Portability and Standardization. Language Changes. The Template Compilation Model. Default Template Parameters. Member Templates. Partial Specialization. New Keywords. Library Changes. Allocators. Container Adaptors. Minor Library Changes. Naming and Packaging. Bibliography. Index. 0201309564T04062001
TL;DR: The companion CD-ROM contains all Boost C++ libraries, including the Boost Metaprogramming Library and its reference documentation, along with all of the book's sample code and extensive supplementary material.
Abstract: C++ Template Metaprogramming sheds light on the most powerful idioms of today's C++, at long last delivering practical metaprogramming tools and techniques into the hands of the everyday programmer.A metaprogram is a program that generates or manipulates program code. Ever since generic programming was introduced to C++, programmers have discovered myriad "template tricks" for manipulating programs as they are compiled, effectively eliminating the barrier between program and metaprogram. While excitement among C++ experts about these capabilities has reached the community at large, their practical application remains out of reach for most programmers. This book explains what metaprogramming is and how it is best used. It provides the foundation you'll need to use the template metaprogramming effectively in your own work.This book is aimed at any programmer who is comfortable with idioms of the Standard Template Library (STL). C++ power-users will gain a new insight into their existing work and a new fluency in the domain of metaprogramming. Intermediate-level programmers who have learned a few advanced template techniques will see where these tricks fit in the big picture and will gain the conceptual foundation to use them with discipline. Programmers who have caught the scent of metaprogramming, but for whom it is still mysterious, will finally gain a clear understanding of how, when, and why it works. All readers will leave with a new tool of unprecedented power at their disposal-the Boost Metaprogramming Library.The companion CD-ROM contains all Boost C++ libraries, including the Boost Metaprogramming Library and its reference documentation, along with all of the book's sample code and extensive supplementary material.