Skip to content

STL Tutorial and Reference Guide C++ Programming with the Standard Template Library

Best in textbook rentals since 2012!

ISBN-10: 0201379236

ISBN-13: 9780201379235

Edition: 2nd 2001 (Revised)

Authors: David R. Musser, Gillmer J. Derge, Atul Saini

List price: $59.99
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Written by developers who helped create the Standard Template Library and pioneered its use, The STL Tutorial and Reference Guide is the world's most accessible, thorough, and practical introduction to STL. This brand-new Second Edition is fully updated to reflect all STL changes incorporated in the final ANSI/ISO standard. It provides dozens of powerful new examples. It contains three completely new chapters, all new appendices, and has been reworked throughout. The authors begin with a highly-accessible overview for STL newcomers; then present detailed explanations of every STL element. Understand the advantages of generic programming with STL; how STL can improve code performance; and…    
Customers also bought

Book details

List price: $59.99
Edition: 2nd
Copyright year: 2001
Publisher: Addison Wesley Professional
Publication date: 3/27/2001
Binding: Hardcover
Pages: 560
Size: 7.50" wide x 9.25" long x 1.50" tall
Weight: 2.882

David R. Musser, currently of Rensselaer Polytechnic Institute, has been involved with STL almost from its inception. Collaborating with its creator, Alexander Stepanov, he helped develop the first implementation and contributed to STL's inclusion in the ANSI/ISO C++ standard. Atul Sainiis President and CEO of Modena Software Incorporated, which distributes STL++, the first commercial STL product.

Foreword
Foreword to the First Edition
Preface
Tutorial Introduction to STL
Introduction
Who Should Read This Book
What Generic Programming Is and Why It's Important
How C++ Templates Enable Generic Programming
The "Code Bloat" Problem with Templates
Understanding STL's Performance Guarantees
Overview of STL Components
Containers
Generic Algorithms
Iterators
Function Objects
Adaptors
Allocators
How STL Differs from Other Libraries
Extensibility
Component Interchangeability
Algorithm/Container Compatibility
Iterators
Input Iterators
Output Iterators
Forward Iterators
Bidirectional Iterators
Random Access Iterators
The STL Iterator Hierarchy: Combining Algorithms and Containers Efficiently
Insert Iterators
Revisiting Input and Output: Stream Iterators
Specification of Iterator Categories Required by STL Algorithms
Designing Generic Algorithms
Why Some Algorithms Require More Powerful Iterators
Choosing the Right Algorithm
Constant Versus Mutable Iterator Types
Iterator Categories Provided by STL Containers
Generic Algorithms
Basic Algorithm Organization in STL
Nonmutating Sequence Algorithms
Mutating Sequence Algorithms
Sorting-Related Algorithms
Generalized Numeric Algorithms
Sequence Containers
Vectors
Deques
Lists
Sorted Associative Containers
Sets and Multisets
Maps and Multimaps
Function Objects
Passing Functions via Function Pointers
Advantages of Specifying Function Objects with Template Parameters
STL-Provided Function Objects
Container Adaptors
Stack Container Adaptor
Queue Container Adaptor
Priority Queue Container Adaptor
Iterator Adaptors
Function Adaptors
Binders
Negators
Adaptors for Pointers to Functions
Putting It Together: Example Programs
Program for Searching a Dictionary
Finding Anagrams of a Given Word
Interacting with the Standard String and I/O Streams Classes
Generating Permutations and Searching the Dictionary
Complete Program
How Fast Is It?
Program for Finding All Anagram Groups
Finding Anagram Groups
Defining a Data Structure to Work with STL
Creating Function Objects for Comparisons
Complete Anagram Group Finding Program
Reading the Dictionary into a Vector of PS Objects
Using a Comparison Object to Sort Word Pairs
Using an Equality Predicate Object to Search for Adjacent Equal Elements
Using a Function Adaptor to Obtain a Predicate Object
Copying the Anagram Group to the Output Stream
Output of the Anagram Program
Better Anagram Program: Using the List and Map Containers
Data Structure Holding Iterator Pairs
Storing Information in a Map of Lists
Outputting the Anagram Groups in Order of Size
Better Anagram Program
Output of the Program
Why Use a Map Container?
Faster Anagram Program: Using Multimaps
Finding Anagram Groups, Version 3
Declaration of the Multimap
Reading the Dictionary into the Multimap
Finding the Anagram Groups in the Multimap
Outputting the Anagram Groups in Order of Size
Output of the Program
How Fast Is It?
Defining an Iterator Class
New Kind of Iterator: Counting Iterator
Counting Iterator Class
Combining STL with Object-Oriented Programming
Using Inheritance and Virtual Functions
Avoiding "Code Bloat" from Container Instances
Program for Displaying Theoretical Computer Science Genealogy
Sorting Students by Date
Associating Students with Advisors
Finding the Roots of the Tree
Reading the File
Printing the Results
Complete "Genealogy" Program
Class for Timing Generic Algorithms
Obstacles to Accurate Timing of Algorithms
Overcoming the Obstacles
Refining the Approach
Automated Analysis with a Timer Class
Timing the STL Sort Algorithms
STL Reference Guide
Iterator Reference Guide
Input Iterator Requirements
Output Iterator Requirements
Forward Iterator Requirements
Bidirectional Iterator Requirements
Random Access Iterator Requirements
Iterator Traits
Iterator Operations
Istream Iterators
Ostream Iterators
Reverse Iterators
Back Insert Iterators
Front Insert Iterators
Insert Iterators
Container Reference Guide
Requirements
Organization of the Container Class Descriptions
Vector
Deque
List
Set
Multiset
Map
Multimap
Stack Container Adaptor
Queue Container Adaptor
Priority Queue Container Adaptor
Generic Algorithm Reference Guide
Organization of the Algorithm Descriptions
Nonmutating Sequence Algorithm Overview
For Each
Find
Find First
Adjacent Find
Count
Mismatch
Equal
Search
Search N
Find End
Mutating Sequence Algorithm Overview
Copy
Swap
Transform
Replace
Fill
Generate
Remove
Unique
Reverse
Rotate
Random Shuffle
Partition
Sorting-Related Algorithms Overview
Sort
Nth Element
Binary Search
Merge
Set Operations on Sorted Structures
Heap Operations
Min and Max
Lexicographical Comparison
Permutation Generators
Generalized Numeric Algorithms Overview
Accumulate
Inner Product
Partial Sum
Adjacent Difference
Function Object and Function Adaptor Reference Guide
Requirements
Base Classes
Arithmetic Operations
Comparison Operations
Logical Operations
Negator Adaptors
Binder Adaptors
Adaptors for Pointers to Functions
Adaptors for Pointers to Member Functions
Allocator Reference Guide
Introduction
Allocator Requirements
Default Allocator
Custom Allocators
Utilities Reference Guide
Introduction
Comparison Functions
Pairs
STL Header Files
String Reference Guide
String Classes
Character Traits
STL Include Files Used in Example Programs
Files Used in Example 17.1
STL Resources
Internet Addresses for SGI Reference Implementation of STL
World Wide Web Address for Source Code for Examples in this Book
STL-Compatible Compilers
Other Related STL and C++ Documents
Generic Programming and STL Discussion List
References
Index