Safari, the world’s most comprehensive technology and business learning platform.

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required

O'Reilly logo
C++ for the Impatient

Book Description

A Ready Reference for C++

C++ for the Impatient offers both the quickest way for busy programmers to learn the latest features of the C++ language and a handy resource for quickly finding answers to specific language questions. Designed to give you the most accurate and up-to-date information you require fast and to the point, this book is also an essential guide to the new C++11 standard, including advanced uses of the C++ standard library.

Features include

  • Concise descriptions of nearly every function, object, and operator in the C++ core language and standard library, with clear, well-chosen examples for each of them

  • Information provided “at a glance” through syntax displays, tables, and summaries of important functions

  • Content organized for quick look-up of needed information

  • Simple explanations of advanced concepts, using helpful illustrations

  • Complete program examples that are both useful and intriguing, including puzzles, games, and challenging exercises

  • C++11 features, all covered in the book, include:

  • Lambdas

  • rvalue references

  • Regular-expression library

  • Randomization library

  • Hash-table containers

  • Smart pointers

  • C++ for the Impatient is an ideal resource for anyone who needs to come up to speed quickly on C++11. Whether or not it’s your first C++ book, it will be one you come back to often for reliable answers.

    Table of Contents

    1. About This eBook
    2. Title Page
    3. Copyright Page
    4. Dedication Page
    5. Contents
    6. Preface
      1. How This Book Is Different: Learning C++11
      2. Who Should Buy This Book?
      3. Examples and Exercises
      4. Requirements: Your Version of C++
      5. C++11
      6. Learning about Object Orientation
      7. Typographic Conventions
      8. A Final Word
    7. Acknowledgments
    8. About the Author
    9. Chapter 1. C++ Fundamentals
      1. 1.1. Elements of a C++ Program
      2. 1.2. Dealing with “Flashing Console”
      3. 1.3. Working with Microsoft Visual Studio
      4. 1.4. Doing More with C++
      5. 1.5. Adding Simple Variable Declarations
      6. 1.6. Introduction to C++ Control Structures
      7. 1.7. General Structure of a C++ Program
      8. 1.8. More about Namespaces
      9. 1.9. Some Comments about Comments
      10. 1.10. Sample App: Adding Machine
      11. Exercises
      12. 1.11. Sample App: Calculating Phi
      13. Exercises
    10. Chapter 2. Data
      1. 2.1. Declaring Simple Variables
      2. 2.2. Primitive Data Types
      3. 2.3. Symbolic Names (“Symbols”)
      4. 2.4. Numeric Literals
      5. 2.5. Mixing Numeric Types
      6. 2.6. String and Character Literals
      7. 2.7. Data Declarations: The Complete Syntax
      8. 2.8. Enumerated Types
      9. 2.9. Special Declarations (typedef, auto, decltype)
      10. 2.10. Sample App: Type Promotion
      11. Exercises
    11. Chapter 3. Operators
      1. 3.1. Precedence, Associativity, and Lvalues
      2. 3.2. Concise Summary of Operators
      3. 3.3. Operators in Detail
      4. 3.4. The Great Controversy: Postfix or Prefix?
      5. 3.5. Bitwise Operators in Detail
      6. 3.6. Cast Operators
      7. 3.7. Sample App: Binary Printout
      8. Exercises
    12. Chapter 4. Control Structures
      1. 4.1. Concise Summary of C++ Statements
      2. 4.2. Null Statements (;) and Expression Statements
      3. 4.3. Compound Statements
      4. 4.4. if and if-else Statements
      5. 4.5. while and do-while Statements
      6. 4.6. for Statements
      7. 4.7. Range-based for Statements (C++11)
      8. 4.8. switch Statements
      9. 4.9. Jump Statements (break, continue, goto)
      10. 4.10. Exception Handling (try, catch)
      11. 4.11. Sample App: Guess-the-Number Game
      12. Exercises
      13. 4.12. Sample App: Computer Guesses the Number
      14. Exercises
    13. Chapter 5. Functions
      1. 5.1. Overview of Traditional (Named) Functions
      2. 5.2. Local and Global Variables
      3. 5.3. Complete Function Declaration Syntax
      4. 5.4. Function Overloading
      5. 5.5. Arguments with Default Values
      6. 5.6. Variable-Length Argument Lists
      7. 5.7. Lambda, or Anonymous, Functions (C++11)
      8. 5.8. constexpr Functions (C++11)
      9. 5.9. Sample App: Odds at Dice
      10. Exercises
    14. Chapter 6. Pointers, Arrays, and References
      1. 6.1. References
      2. 6.2. Arrays
      3. 6.3. Pointers
      4. 6.4. Complex Declarations Involving Pointers
      5. 6.5. Passing and Returning Function Pointers
      6. 6.6. Smart Pointers (C++11)
      7. 6.7. Sample App: Sieve of Eratosthenes
      8. Exercises
    15. Chapter 7. Classes and Objects
      1. 7.1. Overview: Structures, Unions, and Classes
      2. 7.2. Basic Class Declaration Syntax
      3. 7.3. Constructors
      4. 7.4. Destructors
      5. 7.5. The Hidden “this” Pointer
      6. 7.6. Operator Functions (Op Overloading)
      7. 7.7. Deriving Classes (Subclassing)
      8. 7.8. Bit Fields
      9. 7.9. Unions
      10. 7.10. Sample App: Packed Boolean
      11. Exercises
    16. Chapter 8. Preprocessor Directives
      1. 8.1. General Syntax of Preprocessor Directives
      2. 8.2. Summary of Preprocessor Directives
      3. 8.3. Using Directives to Solve Specific Problems
      4. 8.4. Preprocessor Operators
      5. 8.5. Predefined Macros
      6. 8.6. Creating Project Header Files
    17. Chapter 9. Creating and Using Templates
      1. 9.1. Templates: Syntax and Overview
      2. 9.2. Function Templates
      3. 9.3. Class Templates
      4. 9.4. Class Templates with Member Functions
      5. 9.5. Using Integer Template Parameters
      6. 9.6. Template Specialization
      7. 9.7. Variadic Templates (C++11)
      8. 9.8. Sample App: Type Promotion, v 2
      9. Exercises
    18. Chapter 10. C-String Library Functions
      1. 10.1. Overview of the C-String Format
      2. 10.2. Input and Output with C-Strings
      3. 10.3. C-String Functions
      4. 10.4. String Tokenizing with strtok
      5. 10.5. Individual-Character Functions
      6. 10.6. Memory-Block Functions (memcpy, and so on)
      7. 10.7. Wide-Character Functions (wstrcpy, and so on)
    19. Chapter 11. C I/O Library Functions
      1. 11.1. Overview of C Library I/O
      2. 11.2. Console I/O Functions
      3. 11.3. Print/Scan Formats
      4. 11.4. Input and Output to Strings
      5. 11.5. File I/O
    20. Chapter 12. Math, Time, and Other Library Functions
      1. 12.1. Trigonometric Functions
      2. 12.2. Other Math Functions
      3. 12.3. The C Date and Time Library
      4. 12.4. String-to-Number Conversions
      5. 12.5. Memory-Allocation Functions
      6. 12.6. Standard C Randomization Functions
      7. 12.7. Searching and Sorting Functions
      8. 12.8. Other Standard C Library Functions
      9. 12.9. Sample App: Idiot Savant
      10. Exercises
    21. Chapter 13. C++ I/O Stream Classes
      1. 13.1. The Basics of C++ I/O Streams
      2. 13.2. Reading a Line of Input with getline
      3. 13.3. The C++ Stream-Class Hierarchy
      4. 13.4. Stream Objects: Manipulators and Flags
      5. 13.5. Stream Member Functions (General Purpose)
      6. 13.6. File Stream Operations
      7. 13.7. Reading and Writing String Streams
      8. 13.8. Overloading Shift Operators for Your Classes
      9. 13.9. Sample App: Text File Reader
      10. Exercises
    22. Chapter 14. The C++ STL String Class
      1. 14.1. Overview of the String Class
      2. 14.2. String Class Constructors
      3. 14.3. String Class Operators
      4. 14.4. Concise Summary of Member Functions
      5. 14.5. Member Functions in Detail
      6. 14.6. String Class Iterators
      7. 14.7. Wide-Character String Class (basic_string)
    23. Chapter 15. Introduction to STL (vector, deque)
      1. 15.1. A Tour of the Container Templates
      2. 15.2. Introduction to Iterators
      3. 15.3. The vector Template
      4. 15.4. The deque Template
      5. 15.5. The bitset Template
      6. 15.6. Sample App: Alpha File Organizer
      7. Exercises
    24. Chapter 16. STL Sequence Containers (List)
      1. 16.1. Sorting Elements (Strict Weak Ordering)
      2. 16.2. The list Template
      3. 16.3. The stack Template
      4. 16.4. The queue Template
      5. 16.5. The priority_queue Template
      6. 16.6. Sample App: Find the Median
      7. Exercises
    25. Chapter 17. STL Associated Containers (map, set)
      1. 17.1. The pair Template
      2. 17.2. The map Template
      3. 17.3. The set Template
      4. 17.4. The multimap Template
      5. 17.5. The multiset Template
      6. 17.6. Unordered Containers (C++11)
      7. 17.7. Sample App: Guess-the-Word Game
      8. Exercises
    26. Chapter 18. STL Algorithms
      1. 18.1. STL Algorithms: General Concepts
      2. 18.2. Using Lambda Functions (C++11)
      3. 18.3. Algorithms and Iterators
      4. 18.4. Insert Iterators
      5. 18.5. Sample App: Finding the Median
      6. 18.6. Concise Summaries of Algorithms
      7. 18.7. Detailed Descriptions of Algorithms
    27. Chapter 19. C++11 Randomization Library
      1. 19.1. Issues in Randomization
      2. 19.2. A Better Randomization Scheme
      3. 19.3. Common Engines
      4. 19.4. Common Distributions
      5. 19.5. Operations on Engines
      6. 19.6. Operations on Distributions
      7. 19.7. Sample App: Dice Game
      8. Exercises
    28. Chapter 20. C++11 Regular-Expression Library
      1. 20.1. Overview of C++11 Regular Expressions
      2. 20.2. Dealing with Escape Sequences (\)
      3. 20.3. Constructing a RegEx String
      4. 20.4. Matching and Searching Functions
      5. 20.5. “Find All,” or Iterative, Searches
      6. 20.6. Replacing Text
      7. 20.7. String Tokenizing
      8. 20.8. Catching RegEx Exceptions
      9. 20.9. Sample App: RPN Calculator
      10. Exercises
    29. Appendix A. A Painless Introduction to Rvalue References (C++11)
      1. A.1. The Trouble with Copying
      2. A.2. Move Semantics: C++11 to the Rescue!
      3. A.3. Rvalue Refs in a User’s String Class
      4. A.4. Verifying Runtime-Performance Improvement
      5. A.5. Rvalues and Contained Objects
      6. A.6. References Reconsidered: Rvalues and Lvalues
    30. Appendix B. Summary of New Features in C++11
      1. B.1. Improvements in Object Construction
      2. B.2. Other Core-Language Enhancements
      3. B.3. Other New Keywords
      4. B.4. Extensions to the Standard Library
    31. Appendix C. ASCII Codes
    32. Index