STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library
David R. Musser
Atul Saini

ISBN-10: 0201633981
ISBN-13: 9780201633986

Publisher: Addison-Wesley Professional
Copyright: 1996
Format: Cloth; 432 pp
Status: Out of Print

Suggested retail price: $42.95
This item is out of print and is no longer available for purchase.

Foreword.
Preface.

I. A TUTORIAL INTRODUCTION TO STL.

1. Introduction.
Who Should Read This Book.
What Generic Programming Is and Why It's Important.
How C++ Templates Enable Generic Programming.
Understanding STL's Performance Guarantees.
STL Header Files.
Conventions Used in Examples.
2. Overview of STL Components.
Containers.
Generic Algorithms.
Iterators.
Function Objects.
Adaptors.
Allocators.

3. How STL Differs from Other Libraries.
Extensibility.
Component Interchangeability.
Algorithm/Container Compatibility.

4. Iterators.
Input Iterators.
Output Iterators.
Forward Iterators.
Bidirectional Iterators.
Random Access Iterators.
The STL Iterator Hierarchy: Combining Algorithms and Containers Efficiently.
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.

5. Generic Algorithms.
Basic Algorithm Organization in STL.
Nonmutating Sequence Algorithms.
Mutating Sequence Algorithms.
Sorting-Related Algorithms.
Generalized Numeric Algorithms.

6. Sequence Containers.
Vectors.
Deques.
Lists.

7. Sorted Associative Containers.
Sets and Multisets.
Maps and Multimaps.

8. Function Objects.
Example: Function Objects That Do Comparisons.
How Function Objects Differ from Function Pointers.
STL-Provided Function Objects.

9. Container Adaptors.
Stack Container Adaptor.
Queue Container Adaptor.
Priority Queue Container Adaptor.

10. Iterator Adaptors.
Reverse Iterators.
Insert Iterators.

11. Function Adaptors.
Negators.
Binders.
Adaptors for Pointers to Functions.

II. PUTTING IT TOGETHER: EXAMPLE PROGRAMS.


12. A Program for Searching a Dictionary.
Finding Anagrams of a Given Word.
Interacting with the Standard I/O Streams.
Searching the Dictionary.
Generating Permutations.
How Fast Is It?

13. A Program for Finding All Anagram Groups.
Finding Anagram Groups.
Defining a Data Structure to Work with STL.
Creating Function Objects for Comparisons.
The 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.

14. A Better Anagram Program: Using the List and Map Containers.
A Data Structure Holding Pairs of Iterators.
Storing Information in a Map of Lists.
Outputting the Anagram Groups in Order of Size.
A Better Anagram Program.
Output of the Program.
Why Use a Map Container?

15. A 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?
Note on a Compiler Problem.

16. Defining an Iterator Class.
A New Kind of Iterator: Counting Iterator.
A Counting Iterator Class.

17. Combining STL with Object-Oriented Programming.
Using Inheritance and Virtual Functions.
Avoiding "Code Bloat" from Container Instances.

III. STL REFERENCE GUIDE.


18. Iterator Reference Guide.
Input Iterator Requirements.
Output Iterator Requirements.
Forward Iterator Requirements.
Bidirectional Iterator Requirements.
Random Access Iterator Requirements.
Istream Iterators.
Ostream Iterators.
Rev__1/2irectional Iterators.
Reverse Iterators.
Back Insert Iterators.
Front Insert Iterators.
Insert Iterators.

19. 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.

20. Generic Algorithm Reference Guide.
Organization of the Algorithm Descriptions.
Nonmutating Sequence Algorithm Overview.
For Each.
Find.
Adjacent Find.
Count.
Mismatch.
Equal.
Search.
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.

21. Function Object and Function Adaptor Reference Guide.
Requirements.
Arithmetic Operations.
Comparison Operations.
Logical Operations.
Negator Adaptors.
Binder Adaptors.
Adaptors for Pointers to Functions.

22. Allocator Reference Guide.
Introduction.
The Default Allocator Interface.
Custom Allocators.

Appendix A. Non-STL Include Files Used in Example Programs.
File Used in "Anagram Finding" Examples in Chapters 13 and 14.
Files Used in "Shape Example" in Chapter 17.

Appendix B. How to Obtain STL Source Code and Related Files.
Internet Address for HP Reference Implementation of STL.
World Wide Web Address for Source Code for Examples in this Book.
Other World Wide Web Resources.
Other Related STL and C++ Documents.
STL Compliant Vendors.

References.
Index. 0201633981T04062001

  • 0201379236STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library, 2/E
    Musser, Derge & Saini
    © 2001 | Addison-Wesley Professional | Cloth; 560 pages | Instock
    ISBN-10: 0201379236 | ISBN-13: 9780201379235
    Brief Description | Buy from myPearsonStore

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 Saini is President and CEO of Modena Software Incorporated, which distributes STL++, the first commercial STL product.



0201633981AB04062001

The Standard Template Library (STL) represents a breakthrough in C++ programming methodology. Comprising a set of C++ generic data structures and algorithms, STL provides reusable, interchangeable components adaptable to many different uses without sacrificing efficiency. Adopted by the ANSI/ISO C++ Standards Committee, STL is an important addition to every C++ programmer's portfolio of skills.

This book introduces you to STL and provides the information and techniques you need to become a proficient STL programmer. The book 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, and function objects. Several larger, non-trivial applications, including a dictionary lookup program, demonstrate how to put STL's power and flexibility to work. The book will also show you how to integrate STL with object-oriented programming techniques, while the comprehensive and detailed STL reference guide will be a constant and convenient companion as you learn to work with the library.



0201633981B04062001

View a Sample Chapter PDF:

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

This title is a member of the Addison-Wesley Professional Computing Series, which also contains the titles below . You can also visit the Addison-Wesley Professional Computing Series page.

  • 0201379279Advanced CORBA® Programming with C++
    Henning & Vinoski
    © 1999 | Addison-Wesley Professional | Paper; 1120 pages | Instock
    ISBN-10: 0201379279 | ISBN-13: 9780201379273
    Brief Description | Buy from myPearsonStore

  • 0321525949Advanced Programming in the UNIX Environment: Paperback Edition, 2/E
    Stevens & Rago
    © 2008 | Addison-Wesley Professional | Paper; 960 pages | Instock
    ISBN-10: 0321525949 | ISBN-13: 9780321525949
    Buy from myPearsonStore

  • 0201433079Advanced Programming in the UNIX® Environment, 2/E
    Stevens & Rago
    © 2005 | Addison-Wesley Professional | Cloth; 960 pages | Instock
    ISBN-10: 0201433079 | ISBN-13: 9780201433074
    Brief Description | Buy from myPearsonStore

  • 0131411543Advanced UNIX Programming, 2/E
    Rochkind
    © 2004 | Addison-Wesley Professional | Paper; 736 pages | Instock
    ISBN-10: 0131411543 | ISBN-13: 9780131411548
    Brief Description | Buy from myPearsonStore

  • 0131429019The Art of UNIX Programming
    Raymond
    © 2004 | Addison-Wesley Professional | Paper; 560 pages | Instock
    ISBN-10: 0131429019 | ISBN-13: 9780131429017
    Brief Description | Buy from myPearsonStore

  • 020172152XBuilding Secure Software: How to Avoid Security Problems the Right Way
    Viega & McGraw
    © 2002 | Addison-Wesley Professional | Cloth; 528 pages | Instock
    ISBN-10: 020172152X | ISBN-13: 9780201721522
    Brief Description | Buy from myPearsonStore

  • 0201498413C Interfaces and Implementations: Techniques for Creating Reusable Software
    Hanson
    © 1997 | Addison-Wesley Professional | Paper; 544 pages | Instock
    ISBN-10: 0201498413 | ISBN-13: 9780201498417
    Buy from myPearsonStore

  • 0201634988Design Patterns CD: Elements of Reusable Object-Oriented Software
    Gamma, Helm, Johnson & Vlissides
    © 1998 | Addison-Wesley Professional | CD-ROM Only; 2 pages | Instock
    ISBN-10: 0201634988 | ISBN-13: 9780201634983
    Brief Description | Buy from myPearsonStore

  • 0201633612Design Patterns: Elements of Reusable Object-Oriented Software
    Gamma, Helm, Johnson & Vlissides
    © 1995 | Addison-Wesley Professional | Cloth; 416 pages | Instock
    ISBN-10: 0201633612 | ISBN-13: 9780201633610
    Brief Description | Buy from myPearsonStore

  • 0321334876Effective C++: 55 Specific Ways to Improve Your Programs and Designs, 3/E
    Meyers
    © 2005 | Addison-Wesley Professional | Paper; 320 pages | Instock
    ISBN-10: 0321334876 | ISBN-13: 9780321334879
    Brief Description | Buy from myPearsonStore

  • 0201749629Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
    Meyers
    © 2001 | Addison-Wesley Professional | Paper; 288 pages | Instock
    ISBN-10: 0201749629 | ISBN-13: 9780201749625
    Brief Description | Buy from myPearsonStore

  • 020163466XFirewalls and Internet Security: Repelling the Wily Hacker, 2/E
    Cheswick, Bellovin & Rubin
    © 2003 | Addison-Wesley Professional | Paper; 464 pages | Instock
    ISBN-10: 020163466X | ISBN-13: 9780201634662
    Brief Description | Buy from myPearsonStore

  • 020163497XForensic Discovery
    Farmer & Venema
    © 2005 | Addison-Wesley Professional | Cloth; 240 pages | Instock
    ISBN-10: 020163497X | ISBN-13: 9780201634976
    Brief Description | Buy from myPearsonStore

  • 0321618092Forensic Discovery
    Farmer & Venema
    © 2005 | Addison-Wesley Professional | On-line Supplement | Estimated Availability: 12/27/2004
    ISBN-10: 0321618092 | ISBN-13: 9780321618092
    URL: http://safari.informit.com


  • 0201563339Gigabit Networking
    Partridge
    © 1994 | Addison-Wesley Professional | Paper; 416 pages | Estimated Availability: 10/30/1993
    ISBN-10: 0201563339 | ISBN-13: 9780201563337
    Brief Description | Buy from myPearsonStore

  • 0201634481Interconnections: Bridges, Routers, Switches, and Internetworking Protocols, 2/E
    Perlman
    © 2000 | Addison-Wesley Professional | Cloth; 560 pages | Instock
    ISBN-10: 0201634481 | ISBN-13: 9780201634488
    Buy from myPearsonStore

  • 0201633620Large-Scale C++ Software Design
    Lakos
    © 1996 | Addison-Wesley Professional | Paper; 896 pages | Instock
    ISBN-10: 0201633620 | ISBN-13: 9780201633627
    Buy from myPearsonStore

  • 020163371XMore Effective C++: 35 New Ways to Improve Your Programs and Designs
    Meyers
    © 1996 | Addison-Wesley Professional | Paper; 336 pages | Instock
    ISBN-10: 020163371X | ISBN-13: 9780201633719
    Buy from myPearsonStore

  • 020161586XThe Practice of Programming
    Kernighan & Pike
    © 1999 | Addison-Wesley Professional | Paper; 288 pages | Instock
    ISBN-10: 020161586X | ISBN-13: 9780201615869
    Brief Description | Buy from myPearsonStore

  • 0201379236STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library, 2/E
    Musser, Derge & Saini
    © 2001 | Addison-Wesley Professional | Cloth; 560 pages | Instock
    ISBN-10: 0201379236 | ISBN-13: 9780201379235
    Brief Description | Buy from myPearsonStore

  • 0201633469TCP/IP Illustrated, Volume 1: The Protocols
    Stevens
    © 1994 | Addison-Wesley Professional | Cloth; 600 pages | Instock
    ISBN-10: 0201633469 | ISBN-13: 9780201633467
    Brief Description | Buy from myPearsonStore

  • 020163354XTCP/IP Illustrated, Volume 2: The Implementation
    Wright & Stevens
    © 1995 | Addison-Wesley Professional | Cloth; 1200 pages | Instock
    ISBN-10: 020163354X | ISBN-13: 9780201633542
    Brief Description | Buy from myPearsonStore

  • 0201634953TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX® Domain Protocols
    Stevens
    © 1996 | Addison-Wesley Professional | Cloth; 352 pages | Instock
    ISBN-10: 0201634953 | ISBN-13: 9780201634952
    Buy from myPearsonStore

  • 020163337XTcl and the Tk Toolkit
    Ousterhout
    © 1994 | Addison-Wesley Professional | Paper; 480 pages | Out of Stock
    ISBN-10: 020163337X | ISBN-13: 9780201633375
    Brief Description

  • 0201633388UNIX® Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers
    Schimmel
    © 1994 | Addison-Wesley Professional | Paper; 432 pages | Instock
    ISBN-10: 0201633388 | ISBN-13: 9780201633382
    Brief Description | Buy from myPearsonStore

  • 0131411551Unix Network Programming, Volume 1: The Sockets Networking API, 3/E
    Stevens, Fenner & Rudoff
    © 2004 | Addison-Wesley Professional | Cloth; 1024 pages | Instock
    ISBN-10: 0131411551 | ISBN-13: 9780131411555
    Brief Description | Buy from myPearsonStore

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.


Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions