You are previewing C++ How to Program, 10/e.
O'Reilly logo
C++ How to Program, 10/e

Book Description

C++ How to Program presents leading-edge computing technologies in a friendly manner appropriate for introductory college course sequences, based on the curriculum recommendations of two key professional organizations—the ACM and the IEEE.

The best-selling C++ How to Program is accessible to readers with little or no programming experience, yet comprehensive enough for the professional programmer. The Deitels’ signature live-code approach presents the concepts in the context of full working programs followed by sample executions. The early objects approach gets readers thinking about objects immediately—allowing them to more thoroughly master the concepts. Emphasis is placed on achieving program clarity and building well-engineered software. Interesting, entertaining, and challenging exercises encourage students to make a difference and use computers and the Internet to work on problems. To keep readers up-to-date with leading-edge computing technologies, the Tenth Edition conforms to the C++11 standard and the new C++14 standard.

Table of Contents

  1. C++ HOW TO PROGRAM <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="subtitle">Introducing the New C++14 Standard</span>
  2. How To Program Series
  3. Deitel<sup xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">&#174;</sup> Developer Series Developer Series
  4. Simply Series
  5. VitalSource Web Books
  6. LiveLessons Video Learning Products
  7. C++ How to Program <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="subtitle">Introducing the New C++14 Standard</span>
  8. Trademarks
  9. Contents
  10. Preface
    1. Contacting the Authors
    2. Join the Deitel & Associates, Inc. Social Media Communities
    3. The C++11 and C++14 Standards
    4. Key Features of C++ How to Program, 10/e
    5. New in This Edition
    6. Object-Oriented Programming
    7. Hundreds of Code Examples
    8. Exercises
    9. Illustrations and Figures
    10. Dependency Chart
    11. Teaching Approach
    12. Secure C++ Programming
    13. Online Chapters, Appendices and Other Content
    14. Obtaining the Software Used in <cite xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">C++ How to Program, 10/e</cite>
    15. Instructor Supplements
    16. Online Practice and Assessment with MyProgrammingLab™
    17. Reviewers
    18. About the Authors
      1. About Deitel & Associates, Inc.
  11. Before You Begin
  12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1 </span>Introduction to Computers and C++Introduction to Computers and C++
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.2 </span>Computers and the Internet in Industry and ResearchComputers and the Internet in Industry and Research
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.3 </span>Hardware and SoftwareHardware and Software
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.3.1 </span>Moore&#8217;s LawMoore’s Law
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.3.2 </span>Computer OrganizationComputer Organization
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.4 </span>Data HierarchyData Hierarchy
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.5 </span>Machine Languages, Assembly Languages and High-Level LanguagesMachine Languages, Assembly Languages and High-Level Languages
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.6 </span>C and C++C and C++
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.7 </span>Programming LanguagesProgramming Languages
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.8 </span>Introduction to Object TechnologyIntroduction to Object Technology
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.9 </span>Typical C++ Development EnvironmentTypical C++ Development Environment
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.10 </span>Test-Driving a C++ ApplicationTest-Driving a C++ Application
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.10.1 </span>Compiling and Running an Application in Visual Studio 2015 for WindowsCompiling and Running an Application in Visual Studio 2015 for Windows
        1. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1: </span>Checking Your SetupChecking Your Setup
        2. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2: </span>Launching Visual StudioLaunching Visual Studio
        3. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3: </span>Creating a ProjectCreating a Project
        4. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4: </span>Adding the Adding the <b xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops"><code data-uri="M01_PAUL8237_10_AIE_C01.xhtml#P700101197300000000000000001DD07">GuessNumber.cpp</code></b> File into the Project File into the Project
        5. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5: </span>Compiling and Running the ProjectCompiling and Running the Project
        6. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6: </span>Entering Your First GuessEntering Your First Guess
        7. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7: </span>Entering Another GuessEntering Another Guess
        8. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8: </span>Entering Additional GuessesEntering Additional Guesses
        9. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9: </span>Playing the Game Again or Exiting the ApplicationPlaying the Game Again or Exiting the Application
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.10.2 </span>Compiling and Running Using GNU C++ on LinuxCompiling and Running Using GNU C++ on Linux
        1. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1: </span>Locating the Completed ApplicationLocating the Completed Application
        2. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2: </span>Compiling the ApplicationCompiling the Application
        3. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3: </span>Running the ApplicationRunning the Application
        4. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4: </span>Entering Your First GuessEntering Your First Guess
        5. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5: </span>Entering Another GuessEntering Another Guess
        6. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6: </span>Entering Additional GuessesEntering Additional Guesses
        7. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7: </span>Playing the Game Again or Exiting the ApplicationPlaying the Game Again or Exiting the Application
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.10.3 </span>Compiling and Running with Xcode on Mac OS XCompiling and Running with Xcode on Mac OS X
        1. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1: </span>Checking Your SetupChecking Your Setup
        2. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2: </span>Launching XcodeLaunching Xcode
        3. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3: </span>Creating a ProjectCreating a Project
        4. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4: </span>Deleting the Deleting the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M01_PAUL8237_10_AIE_C01.xhtml#P700101197300000000000000001DDA6"><b>main.cpp</b></code> <b xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">File from the Project</b>
        5. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5: </span>Adding the Adding the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M01_PAUL8237_10_AIE_C01.xhtml#P700101197300000000000000001DDAB"><b>GuessNumber.cpp</b></code> <b xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">File into the Project</b>
        6. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6: </span>Compiling and Running the ProjectCompiling and Running the Project
        7. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7: </span>Entering Your First GuessEntering Your First Guess
        8. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8: </span>Entering Another GuessEntering Another Guess
        9. Step <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9: </span>Entering Additional GuessesEntering Additional Guesses
        10. Playing the Game Again or Exiting the Application
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.11 </span>Operating SystemsOperating Systems
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.11.1 </span>Windows&#8212;A Proprietary Operating SystemWindows—A Proprietary Operating System
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.11.2 </span>Linux&#8212;An Open-Source Operating SystemLinux—An Open-Source Operating System
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.11.3 </span>Apple&#8217;s OS X; Apple&#8217;s iOS for iPhoneApple’s OS X; Apple’s iOS for iPhone<sup xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">&#174;</sup>, iPad, iPad<sup xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">&#174;</sup> and iPod Touch and iPod Touch<sup xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">&#174;</sup> Devices Devices
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.11.4 </span>Google&#8217;s AndroidGoogle’s Android
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.12 </span>The Internet and the World Wide WebThe Internet and the World Wide Web
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.13 </span>Some Key Software Development TerminologySome Key Software Development Terminology
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.14 </span>C++11 and C++14: The Latest C++ VersionsC++11 and C++14: The Latest C++ Versions
    17. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.15 </span>Boost C++ LibrariesBoost C++ Libraries
    18. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">1.16 </span>Keeping Up to Date with Information TechnologiesKeeping Up to Date with Information Technologies
    19. Self-Review Exercises
    20. Exercises
    21. Making a Difference
    22. Making a Difference Resources
  13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2 </span>Introduction to C++ Programming, Input/Output and OperatorsIntroduction to C++ Programming, Input/Output and Operators
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.2 </span>First Program in C++: Printing a Line of TextFirst Program in C++: Printing a Line of Text
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.3 </span>Modifying Our First C++ ProgramModifying Our First C++ Program
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.4 </span>Another C++ Program: Adding IntegersAnother C++ Program: Adding Integers
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.5 </span>Memory ConceptsMemory Concepts
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.6 </span>ArithmeticArithmetic
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.7 </span>Decision Making: Equality and Relational OperatorsDecision Making: Equality and Relational Operators
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">2.8 </span>Wrap-UpWrap-Up
    11. Summary
    12. Self-Review Exercises
    13. Exercises
    14. Making a Difference
  14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3 </span>Introduction to Classes, Objects, Member Functions and StringsIntroduction to Classes, Objects, Member Functions and Strings
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.1 </span>Introduction 1Introduction 1
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.2 </span>Test-Driving an Test-Driving an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E5DA">Account</code> Object Object
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.2.1 </span>Instantiating an ObjectInstantiating an Object
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.2.2 </span>Headers and Source-Code FilesHeaders and Source-Code Files
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.2.3 </span>Calling Class Calling Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E60F">Account&#8217;s getName</code> Member Function Member Function
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.2.4 </span>Inputting a Inputting a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E636">string</code> with with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E637">getline</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E64A">getline</code> Function Receiving a Line of Text from the User Function Receiving a Line of Text from the User
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.2.5 </span>Calling Class Calling Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E666">Account&#8217;s setName</code> Member Function Member Function
        1. Displaying the Name That Was Entered by the User
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E691">Account</code> Class with a Data Member and Class with a Data Member and <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">Set</i> and and <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">Get</i> Member Functions Member Functions
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E697">Account</code> Class Definition Class Definition
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.2 </span>Keyword Keyword <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6AA">class</code> and the Class Body and the Class Body
        1. Identifiers and Camel-Case Naming
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.3 </span>Data Member Data Member <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6BB">name</code> of Type of Type <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6BC">string</code>
        1. Use <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6D8">std::</code> with Standard Library Components in Headers with Standard Library Components in Headers
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6E0">setName</code> Member Function Member Function
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6EB">setName</code> Parameter Parameter
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E6FE">setName</code> Parameter List Parameter List
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E707">setName</code> Member Function Body Member Function Body
        4. Parameters Are Local Variables
        5. Argument and Parameter Types Must Be Consistent
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E71C">getName</code> Member Function Member Function
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E735">const</code> Member Functions Member Functions
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.6 </span>Access Specifiers Access Specifiers <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E742">private</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E743">public</code>
        1. Default Access for Class Members
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.3.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E76F">Account</code> UML Class Diagram UML Class Diagram
        1. Top Compartment
        2. Middle Compartment
        3. Bottom Compartment
        4. Return Types
        5. Parameters
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E798">Account</code> Class: Initializing Objects with Constructors Class: Initializing Objects with Constructors
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.4.1 </span>Defining an Defining an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E7AD">Account</code> Constructor for Custom Object Initialization Constructor for Custom Object Initialization
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E7BB">Account</code> Class&#8217;s Constructor Definition Class’s Constructor Definition
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E7D9">explicit</code> Keyword Keyword
        3. Using the Same Parameter Name in the Constructor and Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E7DF">setName</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.4.2 </span>Initializing Initializing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E7E6">Account</code> Objects When They&#8217;re Created Objects When They’re Created
        1. Default Constructor
        2. There’s No Default Constructor in a Class That Defines a Constructor
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.4.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E81D">Account</code> UML Class Diagram with a Constructor UML Class Diagram with a Constructor
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.5 </span>Software Engineering with Software Engineering with <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">Set</i> and and <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">Get</i> Member Functions Member Functions
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E864">Account</code> Class with a Balance; Data Validation Class with a Balance; Data Validation
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6.1 </span>Data Member Data Member <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E86C">balance</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E884">Account</code>&#8217;s Member Functions Can All Use ’s Member Functions Can All Use <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E885">balance</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6.2 </span>Two-Parameter Constructor with ValidationTwo-Parameter Constructor with Validation
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E89A">deposit</code> Member Function with Validation Member Function with Validation
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6.4</span> <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E8AC">getBalance</code> Member Function Member Function
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6.5 </span>Manipulating Manipulating <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E8B8">Account</code> Objects with Balances Objects with Balances
        1. Displaying the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E8C9">Account</code> Objects&#8217; Initial Balances Objects’ Initial Balances
        2. Reading a Deposit Amount from the User and Making a Deposit
        3. Duplicated Code in the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E8FD">main</code> Function Function
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.6.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E90F">Account</code> UML Class Diagram with a Balance and Member Functions UML Class Diagram with a Balance and Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E910">deposit</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M03_PAUL8237_10_AIE_C03.xhtml#P700101197300000000000000001E911">getBalance</code>
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">3.7 </span>Wrap-UpWrap-Up
    10. Summary
    11. Self-Review Exercises
    12. Exercises
    13. Making a Difference
  15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4 </span>Algorithm Development and Control Statements: Part 1Algorithm Development and Control Statements: Part 1
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.2 </span>AlgorithmsAlgorithms
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.3 </span>PseudocodePseudocode
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.4 </span>Control StructuresControl Structures
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.4.1 </span>Sequence StructureSequence Structure
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.4.2 </span>Selection StatementsSelection Statements
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.4.3 </span>Iteration StatementsIteration Statements
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.4.4 </span>Summary of Control StatementsSummary of Control Statements
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ECD8">if</code> Single-Selection Statement Single-Selection Statement
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ECFB">if</code>&#8230;…<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ECFC">else</code> Double-Selection Statement Double-Selection Statement
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.6.1 </span>Nested Nested <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ED20">if</code>&#8230;…<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ED21">else</code> Statements Statements
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.6.2 </span>Dangling-Dangling-<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ED4A">else</code> Problem Problem
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.6.3 </span>BlocksBlocks
        1. Syntax and Logic Errors
        2. Empty Statement
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.6.4 </span>Conditional Operator (Conditional Operator (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ED79">?:</code>))
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ED9E">Student</code> Class: Nested Class: Nested <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001ED9F">if</code>&#8230;…<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EDA0">else</code> Statements Statements
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.8 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EDF0">while</code> Iteration Statement Iteration Statement
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.9 </span>Formulating Algorithms: Counter-Controlled IterationFormulating Algorithms: Counter-Controlled Iteration
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.9.1 </span>Pseudocode Algorithm with Counter-Controlled IterationPseudocode Algorithm with Counter-Controlled Iteration
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.9.2 </span>Implementing Counter-Controlled IterationImplementing Counter-Controlled Iteration
        1. Local Variables in <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EE31">main</code>
        2. Initialization Phase: Initializing Variables <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EE44">total</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EE45">gradeCounter</code>
        3. Processing Phase: Reading 10 Grades from the User
        4. Termination Phase: Calculating and Displaying the Class Average
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.9.3 </span>Notes on Integer Division and TruncationNotes on Integer Division and Truncation
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.9.4 </span>Arithmetic OverflowArithmetic Overflow
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.9.5 </span>Input ValidationInput Validation
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10 </span>Formulating Algorithms: Sentinel-Controlled IterationFormulating Algorithms: Sentinel-Controlled Iteration
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10.1 </span>Top-Down, Stepwise Refinement: The Top and First RefinementTop-Down, Stepwise Refinement: The Top and First Refinement
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10.2 </span>Proceeding to the Second RefinementProceeding to the Second Refinement
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10.3 </span>Implementing Sentinel-Controlled IterationImplementing Sentinel-Controlled Iteration
        1. Program Logic for Sentinel-Controlled Iteration vs. Counter-Controlled Iteration
        2. Braces in a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EF03">while</code> Statement Statement
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10.4 </span>Converting Between Fundamental Types Explicitly and ImplicitlyConverting Between Fundamental Types Explicitly and Implicitly
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EF19">static_cast</code> Operator Operator
        2. Promotions
        3. Cast Operators for Any Type
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10.5 </span>Formatting Floating-Point NumbersFormatting Floating-Point Numbers
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EF37">setprecision</code> Parameterized Stream Manipulator Parameterized Stream Manipulator
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M04_PAUL8237_10_AIE_C04.xhtml#P700101197300000000000000001EF43">fixed</code> Nonparameterized Stream Manipulator Nonparameterized Stream Manipulator
        3. Rounding Floating-Point Numbers
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10.6 </span>Unsigned Integers and User InputUnsigned Integers and User Input
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11 </span>Formulating Algorithms: Nested Control StatementsFormulating Algorithms: Nested Control Statements
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.1 </span>Problem StatementProblem Statement
        1. Problem Statement Observations
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.2 </span>Top-Down, Stepwise Refinement: Pseudocode Representation of the TopTop-Down, Stepwise Refinement: Pseudocode Representation of the Top
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.3 </span>Top-Down, Stepwise Refinement: First RefinementTop-Down, Stepwise Refinement: First Refinement
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.4 </span>Top-Down, Stepwise Refinement: Second RefinementTop-Down, Stepwise Refinement: Second Refinement
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.5 </span>Complete Second Refinement of the PseudocodeComplete Second Refinement of the Pseudocode
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.6 </span>Program That Implements the Pseudocode AlgorithmProgram That Implements the Pseudocode Algorithm
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.11.7 </span>Preventing Narrowing Conversions with List InitializationPreventing Narrowing Conversions with List Initialization
        1. A Look Back at Fig. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.10</span>
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.12 </span>Compound Assignment OperatorsCompound Assignment Operators
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.13 </span>Increment and Decrement OperatorsIncrement and Decrement Operators
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.14 </span>Fundamental Types Are Not PortableFundamental Types Are Not Portable
    17. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">4.15 </span>Wrap-UpWrap-Up
    18. Summary
    19. Self-Review Exercises
    20. Exercises
    21. Making a Difference
  16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5 </span>Control Statements: Part 2; Logical OperatorsControl Statements: Part 2; Logical Operators
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.1 </span>IntroductionIntroduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.2 </span>Essentials of Counter-Controlled IterationEssentials of Counter-Controlled Iteration
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F538">for</code> Iteration Statement Iteration Statement
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.4 </span>Examples Using the Examples Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F5D2">for</code> Statement Statement
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.5 </span>Application: Summing Even IntegersApplication: Summing Even Integers
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.6 </span>Application: Compound-Interest CalculationsApplication: Compound-Interest Calculations
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.7 </span>Case Study: Integer-Based Monetary Calculations with Class Case Study: Integer-Based Monetary Calculations with Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F6C7">DollarAmount</code>
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.7.1 </span>Demonstrating Class Demonstrating Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F70B">DollarAmount</code>
        1. Calculating Compound Interest with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F72F">DollarAmount</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.7.2 </span>Class Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F751">DollarAmount</code>
        1. C++11 Type <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F75C">int64_t</code>
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F770">DollarAmount</code> Constructor Constructor
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F777">DollarAmount</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F778">add</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F779">subtract</code>
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F78C">DollarAmount</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F78D">addInterest</code>
        5. Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F7BD">toString</code>
        6. Banker’s Rounding
        7. Even <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F7D7">int64_t</code> Is Limited Is Limited
        8. A Note About Arithmetic Operators and Modifying Operands
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.8 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F7E3">do</code>&#8230;…<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F7E4">while</code> Iteration Statement Iteration Statement
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.9 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F80B">switch</code> Multiple-Selection Statement Multiple-Selection Statement
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.10 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F8C9">break</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F8CA">continue</code> Statements Statements
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.10.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F8D3">break</code> Statement Statement
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.10.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F8F0">continue</code> Statement Statement
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.11 </span>Logical OperatorsLogical Operators
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.11.1 </span>Logical AND (Logical AND (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F937">&amp;&amp;</code>) Operator) Operator
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.11.2 </span>Logical OR (Logical OR (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F971">||</code>) Operator) Operator
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.11.3 </span>Short-Circuit EvaluationShort-Circuit Evaluation
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.11.4 </span>Logical Negation (Logical Negation (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001F9B6">!</code>) Operator) Operator
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.11.5 </span>Logical Operators ExampleLogical Operators Example
        1. Precedence and Associativity of the Operators Presented So Far
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.12 </span>Confusing the Equality (Confusing the Equality (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001FA78">==</code>) and Assignment () and Assignment (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M05_PAUL8237_10_AIE_C05.xhtml#P700101197300000000000000001FA79">=</code>) Operators) Operators
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.13 </span>Structured-Programming SummaryStructured-Programming Summary
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">5.14 </span>Wrap-UpWrap-Up
    17. Summary
    18. Self-Review Exercises
    19. Exercises
    20. Making a Difference
  17. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6 </span>Functions and an Introduction to RecursionFunctions and an Introduction to Recursion
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.2 </span>Program Components in C++Program Components in C++
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.3 </span>Math Library FunctionsMath Library Functions
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.4 </span>Function PrototypesFunction Prototypes
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.5 </span>Function-Prototype and Argument-Coercion NotesFunction-Prototype and Argument-Coercion Notes
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.5.1 </span>Function Signatures and Function PrototypesFunction Signatures and Function Prototypes
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.5.2 </span>Argument CoercionArgument Coercion
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.5.3 </span>Argument-Promotion Rules and Implicit Conversions1Argument-Promotion Rules and Implicit Conversions1
        1. Conversions Can Result in Incorrect Values
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.6 </span>C++ Standard Library HeadersC++ Standard Library Headers
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.7 </span>Case Study: Random-Number Generation2Case Study: Random-Number Generation2
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.7.1 </span>Rolling a Six-Sided DieRolling a Six-Sided Die
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.7.2 </span>Rolling a Six-Sided Die 60,000,000 TimesRolling a Six-Sided Die 60,000,000 Times
        1. C++14 Digit Separators for Numeric Literals
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.7.3 </span>Randomizing the Random-Number Generator with Randomizing the Random-Number Generator with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M06_PAUL8237_10_AIE_C06.xhtml#P70010119730000000000000000200B7">srand</code>
        1. Demonstrating <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M06_PAUL8237_10_AIE_C06.xhtml#P70010119730000000000000000200C7">srand</code>
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.7.4 </span>Seeding the Random-Number Generator with the Current TimeSeeding the Random-Number Generator with the Current Time
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.7.5 </span>Scaling and Shifting Random NumbersScaling and Shifting Random Numbers
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.8 </span>Case Study: Game of Chance; Introducing Scoped Case Study: Game of Chance; Introducing Scoped <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M06_PAUL8237_10_AIE_C06.xhtml#P70010119730000000000000000200F0">enum</code>ss
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.9 </span>C++11 Random NumbersC++11 Random Numbers
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.10 </span>Scope RulesScope Rules
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.11 </span>Function-Call Stack and Activation RecordsFunction-Call Stack and Activation Records
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.12 </span>Inline FunctionsInline Functions
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.13 </span>References and Reference ParametersReferences and Reference Parameters
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.14 </span>Default ArgumentsDefault Arguments
    17. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.15 </span>Unary Scope Resolution OperatorUnary Scope Resolution Operator
    18. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.16 </span>Function OverloadingFunction Overloading
    19. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.17 </span>Function TemplatesFunction Templates
    20. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.18 </span>RecursionRecursion
    21. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.19 </span>Example Using Recursion: Fibonacci SeriesExample Using Recursion: Fibonacci Series
    22. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.20 </span>Recursion vs. IterationRecursion vs. Iteration
    23. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.21 </span>Wrap-UpWrap-Up
    24. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.11 </span>Function-Call Stack and Activation RecordsFunction-Call Stack and Activation Records
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.12 </span>Inline FunctionsInline Functions
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.13 </span>References and Reference ParametersReferences and Reference Parameters
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.14 </span>Default ArgumentsDefault Arguments
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.15 </span>Unary Scope Resolution OperatorUnary Scope Resolution Operator
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.16 </span>Function OverloadingFunction Overloading
      7. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.17 </span>Function TemplatesFunction Templates
      8. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.18 </span>RecursionRecursion
      9. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.19 </span>Example Using Recursion: Fibonacci SeriesExample Using Recursion: Fibonacci Series
        1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">6.20 </span>Recursion vs. IterationRecursion vs. Iteration
    25. Self-Review Exercises
    26. Exercises
    27. Making a Difference
  18. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7</span> Class Templates Class Templates <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P700101197300000000000000002089C">array</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P700101197300000000000000002089D">vector</code>; Catching Exceptions; Catching Exceptions
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P700101197300000000000000002092D">array</code>ss
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.3 </span>Declaring Declaring <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P70010119730000000000000000209B7">array</code>ss
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4 </span>Examples Using Examples Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P70010119730000000000000000209CA">array</code>ss
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.1 </span>Declaring an Declaring an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P70010119730000000000000000209CE">array</code> and Using a Loop to Initialize the and Using a Loop to Initialize the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P70010119730000000000000000209CF">array</code>&#8217;s Elements’s Elements
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.2 </span>Initializing an Initializing an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P70010119730000000000000000209F5">array</code> in a Declaration with an Initializer List in a Declaration with an Initializer List
        1. Fewer Initializers Than <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A04">array</code> Elements Elements
        2. More Initializers Than <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A11">array</code> Elements Elements
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.3 </span>Specifying an Specifying an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A1B">array</code>&#8217;s Size with a Constant Variable and Setting ’s Size with a Constant Variable and Setting <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A1C">array</code> Elements with Calculations Elements with Calculations
        1. Constant Variables
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.4 </span>Summing the Elements of an Summing the Elements of an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A51">array</code>
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.5 </span>Using a Bar Chart to Display Using a Bar Chart to Display <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A68">array</code> Data Graphically Data Graphically
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.6 </span>Using the Elements of an Using the Elements of an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020A86">array</code> as Counters as Counters
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.7 </span>Using Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020AA4">array</code>s to Summarize Survey Resultss to Summarize Survey Results
        1. Bounds Checking for <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020AF2">array</code> Subscripts Subscripts
      8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.4.8 </span>Static Local Static Local <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020B15">array</code>s and Automatic Local s and Automatic Local <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020B16">array</code>ss
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.5 </span>Range-Based Range-Based <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020B45">for</code> Statement Statement
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.6 </span>Case Study: Class Case Study: Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020B87">GradeBook</code> Using an Using an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020B88">array</code> to Store Grades to Store Grades
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.7 </span>Sorting and Searching Sorting and Searching <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020C28">array</code>ss
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.7.1 </span>SortingSorting
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.7.2 </span>SearchingSearching
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.7.3 </span>Demonstrating Functions Demonstrating Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020C37">sort</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020C38">binary_search</code>
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.8 </span>Multidimensional Multidimensional <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020C59">array</code>ss
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.9 </span>Case Study: Class Case Study: Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020CE9">GradeBook</code> Using a Two-Dimensional Using a Two-Dimensional <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020CEA">array</code>
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.10 </span>Introduction to C++ Standard Library Class Template Introduction to C++ Standard Library Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M07_PAUL8237_10_AIE_C07.xhtml#P7001011973000000000000000020D7B">vector</code>
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">7.11 </span>Wrap-UpWrap-Up
    14. Summary
    15. Self-Review Exercises
    16. Exercises
    17. Recursion Exercises
    18. Making a Difference
  19. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8</span> Pointers Pointers
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.1 </span>IntroductionIntroduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.2 </span>Pointer Variable Declarations and InitializationPointer Variable Declarations and Initialization
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.2.1 </span>Declaring PointersDeclaring Pointers
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.2.2 </span>Initializing PointersInitializing Pointers
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.2.3 </span>Null Pointers Prior to C++11Null Pointers Prior to C++11
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.3 </span>Pointer OperatorsPointer Operators
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.3.1 </span>Address (Address (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P70010119730000000000000000212C1">&amp;</code>) Operator) Operator
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.3.2 </span>Indirection (Indirection (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P70010119730000000000000000212E5">*</code>) Operator) Operator
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.3.3 </span>Using the Address (Using the Address (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P7001011973000000000000000021304">&amp;</code>) and Indirection () and Indirection (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P7001011973000000000000000021305">*</code>) Operators) Operators
        1. Precedence and Associativity of the Operators Discussed So Far
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.4 </span>Pass-by-Reference with PointersPass-by-Reference with Pointers
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5 </span>Built-In ArraysBuilt-In Arrays
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.1 </span>Declaring and Accessing a Built-In ArrayDeclaring and Accessing a Built-In Array
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.2 </span>Initializing Built-In ArraysInitializing Built-In Arrays
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.3 </span>Passing Built-In Arrays to FunctionsPassing Built-In Arrays to Functions
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.4 </span>Declaring Built-In Array ParametersDeclaring Built-In Array Parameters
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.5 </span>C++11: Standard Library Functions C++11: Standard Library Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P700101197300000000000000002142F">begin</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P7001011973000000000000000021430">end</code>
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.6 </span>Built-In Array LimitationsBuilt-In Array Limitations
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.5.7 </span>Built-In Arrays Sometimes Are RequiredBuilt-In Arrays Sometimes Are Required
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.6 </span>Using Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P7001011973000000000000000021461">const</code> with Pointers with Pointers
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.6.1 </span>Nonconstant Pointer to Nonconstant DataNonconstant Pointer to Nonconstant Data
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.6.2 </span>Nonconstant Pointer to Constant DataNonconstant Pointer to Constant Data
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.6.3 </span>Constant Pointer to Nonconstant DataConstant Pointer to Nonconstant Data
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.6.4 </span>Constant Pointer to Constant DataConstant Pointer to Constant Data
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P70010119730000000000000000214E6">sizeof</code> Operator Operator
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.8 </span>Pointer Expressions and Pointer ArithmeticPointer Expressions and Pointer Arithmetic
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.8.1 </span>Adding Integers to and Subtracting Integers from PointersAdding Integers to and Subtracting Integers from Pointers
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.8.2 </span>Subtracting PointersSubtracting Pointers
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.8.3 </span>Pointer AssignmentPointer Assignment
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.8.4 </span>Cannot Dereference a Cannot Dereference a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M08_PAUL8237_10_AIE_C08.xhtml#P7001011973000000000000000021588">void*</code>
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.8.5 </span>Comparing PointersComparing Pointers
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.9 </span>Relationship Between Pointers and Built-In ArraysRelationship Between Pointers and Built-In Arrays
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.9.1 </span>Pointer/Offset NotationPointer/Offset Notation
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.9.2 </span>Pointer/Offset Notation with the Built-In Array&#8217;s Name as the PointerPointer/Offset Notation with the Built-In Array’s Name as the Pointer
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.9.3 </span>Pointer/Subscript NotationPointer/Subscript Notation
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.9.4 </span>Demonstrating the Relationship Between Pointers and Built-In ArraysDemonstrating the Relationship Between Pointers and Built-In Arrays
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.10 </span>Pointer-Based Strings (Optional)Pointer-Based Strings (Optional)
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.11 </span>Note About Smart PointersNote About Smart Pointers
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">8.12 </span>Wrap-UpWrap-Up
    15. Summary
    16. Self-Review Exercises
    17. Exercises
    18. Special Section: Building Your Own Computer
  20. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9</span> Classes: A Deeper Look Classes: A Deeper Look
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.1 </span>IntroductionIntroduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021B4C">Time</code> Class Case Study: Separating Interface from Implementation Class Case Study: Separating Interface from Implementation
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.1 </span>Interface of a ClassInterface of a Class
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.2 </span>Separating the Interface from the ImplementationSeparating the Interface from the Implementation
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021B7C">Time</code> Class Definition Class Definition
        1. Include Guard1
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021BB5">Time</code> Class Member Functions Class Member Functions
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.5 </span>Scope Resolution Operator (Scope Resolution Operator (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021BC4">::</code>))
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.6 </span>Including the Class Header in the Source-Code FileIncluding the Class Header in the Source-Code File
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021BF1">Time</code> Class Member Function Class Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021BF2">setTime</code> and Throwing Exceptions and Throwing Exceptions
      8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.8 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021C19">Time</code> Class Member Function Class Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021C1A">toUniversalString</code> and String Stream Processing and String Stream Processing
      9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.9 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021C3B">Time</code> Class Member Function Class Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021C3C">toStandardString</code>
      10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.10 </span>Implicitly Inlining Member FunctionsImplicitly Inlining Member Functions
      11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.11 </span>Member Functions vs. Global FunctionsMember Functions vs. Global Functions
      12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.12 </span>Using Class Using Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021C6F">Time</code>
        1. Calling <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021C94">setTime</code> with Invalid Values with Invalid Values
      13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.2.13 </span>Object SizeObject Size
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.3 </span>Compilation and Linking ProcessCompilation and Linking Process
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.4 </span>Class Scope and Accessing Class MembersClass Scope and Accessing Class Members
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.5 </span>Access Functions and Utility FunctionsAccess Functions and Utility Functions
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021D0C">Time</code> Class Case Study: Constructors with Default Arguments Class Case Study: Constructors with Default Arguments
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.6.1 </span>Constructors with Default ArgumentsConstructors with Default Arguments
        1. <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">Notes Regarding Class <code data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021D4E">Time</code>&#8217;s</i> Set Set <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">and</i> Get Get <i xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops">Functions and Constructor</i>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.6.2 </span>Overloaded Constructors and C++11 Delegating ConstructorsOverloaded Constructors and C++11 Delegating Constructors
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.7 </span>DestructorsDestructors
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.8 </span>When Constructors and Destructors Are CalledWhen Constructors and Destructors Are Called
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.8.1 </span>Constructors and Destructors for Objects in Global ScopeConstructors and Destructors for Objects in Global Scope
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.8.2 </span>Constructors and Destructors for Non-Constructors and Destructors for Non-<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021DA8">static</code> Local Objects Local Objects
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.8.3 </span>Constructors and Destructors for Constructors and Destructors for <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021DAF">static</code> Local Objects Local Objects
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.8.4 </span>Demonstrating When Constructors and Destructors Are CalledDemonstrating When Constructors and Destructors Are Called
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.9 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021DF4">Time</code> Class Case Study: A Subtle Trap &#8212; Returning a Reference or a Pointer to a Class Case Study: A Subtle Trap — Returning a Reference or a Pointer to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021DF5">private</code> Data Member Data Member
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.10 </span>Default Memberwise AssignmentDefault Memberwise Assignment
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.11 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021E5A">const</code> Objects and Objects and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021E5B">const</code> Member Functions Member Functions
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.12 </span>Composition: Objects as Members of ClassesComposition: Objects as Members of Classes
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.13 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021F5A">friend</code> Functions and Functions and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021F5B">friend</code> Classes Classes
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.14 </span>Using the Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021FBB">this</code> Pointer Pointer
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.14.1 </span>Implicitly and Explicitly Using the Implicitly and Explicitly Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000021FF0">this</code> Pointer to Access an Object&#8217;s Data Members Pointer to Access an Object’s Data Members
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.14.2 </span>Using the Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000022012">this</code> Pointer to Enable Cascaded Function Calls Pointer to Enable Cascaded Function Calls
    17. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.15 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000022052">static</code> Class Members Class Members
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.15.1 </span>Motivating Classwide DataMotivating Classwide Data
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.15.2 </span>Scope and Initialization of Scope and Initialization of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P700101197300000000000000002207F">static</code> Data Members Data Members
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.15.3 </span>Accessing Accessing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P7001011973000000000000000022092">static</code> Data Members Data Members
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.15.4 </span>Demonstrating Demonstrating <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M09_PAUL8237_10_AIE_C09.xhtml#P70010119730000000000000000220AF">static</code> Data Members Data Members
    18. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">9.16 </span>Wrap-UpWrap-Up
    19. Summary
    20. Self-Review Exercises
    21. Exercises
    22. Making a Difference
  21. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10 </span>Operator Overloading; Class stringOperator Overloading; Class string
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.2 </span>Using the Overloaded Operators of Standard Library Class Using the Overloaded Operators of Standard Library Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000224F8">string</code>
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.3 </span>Fundamentals of Operator OverloadingFundamentals of Operator Overloading
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.3.1 </span>Operator Overloading Is Not AutomaticOperator Overloading Is Not Automatic
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.3.2 </span>Operators That You Do Not Have to OverloadOperators That You Do Not Have to Overload
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.3.3 </span>Operators That Cannot Be OverloadedOperators That Cannot Be Overloaded
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.3.4 </span>Rules and Restrictions on Operator OverloadingRules and Restrictions on Operator Overloading
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.4 </span>Overloading Binary OperatorsOverloading Binary Operators
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.5 </span>Overloading the Binary Stream Insertion and Stream Extraction OperatorsOverloading the Binary Stream Insertion and Stream Extraction Operators
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.6 </span>Overloading Unary OperatorsOverloading Unary Operators
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.7 </span>Overloading the Increment and Decrement OperatorsOverloading the Increment and Decrement Operators
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.8 </span>Case Study: A Date ClassCase Study: A Date Class
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.9 </span>Dynamic Memory ManagementDynamic Memory Management
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.10 </span>Case Study: Case Study: <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000227B2">Array</code> Class Class
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.10.1 </span>Using the Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000227D3">Array</code> Class Class
        1. Creating <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000227E2">Array</code>s, Outputting Their Size and Displaying Their Contentss, Outputting Their Size and Displaying Their Contents
        2. Using the Overloaded Stream Extraction Operator to Fill an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000227F3">Array</code>
        3. Using the Overloaded Inequality Operator
        4. Initializing a New <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022800">Array</code> with a Copy of an Existing with a Copy of an Existing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022801">Array</code>&#8217;s Contents’s Contents
        5. Using the Overloaded Assignment Operator
        6. Using the Overloaded Equality Operator
        7. Using the Overloaded Subscript Operator
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.10.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022838">Array</code> Class Definition Class Definition
        1. Overloading the Stream Insertion and Stream Extraction Operators as <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022852">friend</code>ss
        2. Range-Based <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022878">for</code> Does Not Work with Dynamically Allocated Built-In Arrays Does Not Work with Dynamically Allocated Built-In Arrays
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022882">Array</code> Default Constructor Default Constructor
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022890">Array</code> Copy Constructor Copy Constructor
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000228B6">Array</code> Destructor Destructor
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000228C5">getSize</code> Member Function Member Function
        7. Overloaded Assignment Operator
        8. C++11: Move Constructor and Move Assignment Operator
        9. C++11: Deleting Unwanted Member Functions from Your Class
        10. Overloaded Equality and Inequality Operators
        11. Overloaded Subscript Operators
        12. C++11: Managing Dynamically Allocated Memory with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022942">unique_ptr</code>
        13. C++11: Passing a List Initializer to a Constructor
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.11 </span>Operators as Member vs. Non-Member FunctionsOperators as Member vs. Non-Member Functions
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.12 </span>Converting Between TypesConverting Between Types
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.13 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P70010119730000000000000000229BD">explicit</code> Constructors and Conversion Operators Constructors and Conversion Operators
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.14 </span>Overloading the Function Call Operator Overloading the Function Call Operator <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M10_PAUL8237_10_AIE_C10.xhtml#P7001011973000000000000000022A28">()</code>
    17. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">10.15 </span>Wrap-UpWrap-Up
    18. Summary
    19. Self-Review Exercises
    20. Exercises
  22. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11 </span>Object-Oriented Programming: InheritanceObject-Oriented Programming: Inheritance
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.2 </span>Base Classes and Derived ClassesBase Classes and Derived Classes
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.2.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022CC6">CommunityMember</code> Class Hierarchy Class Hierarchy
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.2.2 </span>Shape Class HierarchyShape Class Hierarchy
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.3 </span>Relationship between Base and Derived ClassesRelationship between Base and Derived Classes
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.3.1 </span>Creating and Using a Creating and Using a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D23">CommissionEmployee</code> Class Class
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D43">CommissionEmployee</code> Constructor Constructor
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D52">CommissionEmployee</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D53">earnings</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D54">toString</code>
        3. Testing Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D5D">CommissionEmployee</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.3.2 </span>Creating a Creating a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D7C">BasePlusCommissionEmployee</code> Class Without Using Inheritance Class Without Using Inheritance
        1. Defining Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022D8D">BasePlusCommissionEmployee</code>
        2. Testing Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022DA2">BasePlusCommissionEmployee</code>
        3. Exploring the Similarities Between Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022DBE">BasePlusCommissionEmployee</code> and Class and Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022DBF">CommissionEmployee</code>
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.3.3 </span>Creating a Creating a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022DED">CommissionEmployee&#8211;BasePlusCommissionEmployee</code> Inheritance Hierarchy Inheritance Hierarchy
        1. Compilation Errors from Accessing Base-Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E33">private</code> Members Members
        2. Preventing the Errors in <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E41">BasePlusCommissionEmployee</code>
        3. Including the Base-Class Header in the Derived-Class Header with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E4E">#include</code>
        4. Linking Process in an Inheritance Hierarchy
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.3.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E65">CommissionEmployee&#8211;BasePlusCommissionEmployee</code> Inheritance Hierarchy Using Inheritance Hierarchy Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E66">protected</code> Data Data
        1. Defining Base-Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E7E">CommissionEmployee</code> with with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E7F">protected</code> Data Data
        2. Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022E92">BasePlusCommissionEmployee</code>
        3. Testing the Modified <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022EAD">BasePlusCommissionEmployee</code> Class Class
        4. Notes on Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022EC0">protected</code> Data Data
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.3.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022EE4">CommissionEmployee&#8211;BasePlusCommissionEmployee</code> Inheritance Hierarchy Using Inheritance Hierarchy Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022EE5">private</code> Data Data
        1. Changes to Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022EEF">CommissionEmployee</code>&#8217;s Member-Function Definitions’s Member-Function Definitions
        2. Changes to Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F12">BasePlusCommissionEmployee</code>&#8217;s Member-Function Definitions’s Member-Function Definitions
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F2B">BasePlusCommissionEmployee</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F2C">earnings</code>
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F45">BasePlusCommissionEmployee</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F46">toString</code>
        5. Testing the Modified Class Hierarchy
        6. Summary of the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F60">CommissionEmployee&#8211;BasePlusCommissionEmployee</code> Examples Examples
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.4 </span>Constructors and Destructors in Derived ClassesConstructors and Destructors in Derived Classes
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F9D">public</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F9E">protected</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000022F9F">private</code> Inheritance Inheritance
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.6 </span>Wrap-Up Wrap-Up
    9. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.2 </span>Base Classes and Derived ClassesBase Classes and Derived Classes
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.4 </span>Constructors and Destructors in Derived ClassesConstructors and Destructors in Derived Classes
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">11.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000023032">public</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000023033">protected</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M11_PAUL8237_10_AIE_C11.xhtml#P7001011973000000000000000023034">private</code> Inheritance Inheritance
    10. Self-Review Exercises
    11. Exercises
  23. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12 </span>Object-Oriented Programming: PolymorphismObject-Oriented Programming: Polymorphism
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.2 </span>Introduction to Polymorphism: Polymorphic Video GameIntroduction to Polymorphism: Polymorphic Video Game
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.3 </span>Relationships Among Objects in an Inheritance HierarchyRelationships Among Objects in an Inheritance Hierarchy
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.3.1 </span>Invoking Base-Class Functions from Derived-Class ObjectsInvoking Base-Class Functions from Derived-Class Objects
        1. Creating Objects and Displaying Their Contents
        2. Aiming a Base-Class Pointer at a Base-Class Object
        3. Aiming a Derived-Class Pointer at a Derived-Class Object
        4. Aiming a Base-Class Pointer at a Derived-Class Object
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.3.2 </span>Aiming Derived-Class Pointers at Base-Class ObjectsAiming Derived-Class Pointers at Base-Class Objects
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.3.3 </span>Derived-Class Member-Function Calls via Base-Class PointersDerived-Class Member-Function Calls via Base-Class Pointers
        1. Downcasting
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4 </span>Virtual Functions and Virtual DestructorsVirtual Functions and Virtual Destructors
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.1 </span>Why Why <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002328D">virtual</code> Functions Are Useful Functions Are Useful
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.2 </span>Declaring Declaring <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000232A0">virtual</code> Functions Functions
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.3 </span>Invoking a Invoking a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000232C6">virtual</code> Function Through a Base-Class Pointer or Reference Function Through a Base-Class Pointer or Reference
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.4 </span>Invoking a Invoking a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000232CC">virtual</code> Function Through an Object&#8217;s Name Function Through an Object’s Name
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000232D3">virtual</code> Functions in the Functions in the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000232D4">CommissionEmployee</code> Hierarchy Hierarchy
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002332E">virtual</code> Destructors Destructors
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.7 </span>C++11: C++11: <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023353">final</code> Member Functions and Classes Member Functions and Classes
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.5 </span>Type Fields and Type Fields and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023363">switch</code> Statements Statements
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.6 </span>Abstract Classes and Pure Abstract Classes and Pure <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002337A">virtual</code> Functions Functions
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.6.1 </span>Pure Pure <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023387">virtual</code> Functions Functions
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.6.2 </span>Device Drivers: Polymorphism in Operating SystemsDevice Drivers: Polymorphism in Operating Systems
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.7 </span>Case Study: Payroll System Using PolymorphismCase Study: Payroll System Using Polymorphism
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.7.1 </span>Creating Abstract Base Class Creating Abstract Base Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000233D6">Employee</code>
        1. Employee Class Header
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.7.2 </span>Creating Concrete Derived Class Creating Concrete Derived Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023445">SalariedEmployee</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023462">SalariedEmployee</code> Class Member-Function Definitions Class Member-Function Definitions
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.7.3 </span>Creating Concrete Derived Class Creating Concrete Derived Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002349A">CommissionEmployee</code>
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.7.4 </span>Creating Indirect Concrete Derived Class Creating Indirect Concrete Derived Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000234B9">BasePlusCommissionEmployee</code>
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.7.5 </span>Demonstrating Polymorphic ProcessingDemonstrating Polymorphic Processing
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.8 </span>(Optional) Polymorphism, Virtual Functions and Dynamic Binding &#8220;Under the Hood&#8221;(Optional) Polymorphism, Virtual Functions and Dynamic Binding “Under the Hood”
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.9 </span>Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000235DE">dynamic_cast</code>, typeid and type_info, typeid and type_info
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.10 </span>Wrap-Up Wrap-Up
    13. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.2 </span>Introduction to Polymorphism: Polymorphic Video GameIntroduction to Polymorphism: Polymorphic Video Game
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.3 </span>Relationships Among Objects in an Inheritance HierarchyRelationships Among Objects in an Inheritance Hierarchy
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.2 </span>Declaring Declaring <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023669">virtual</code> Functions Functions
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.3 </span>Invoking a Invoking a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002366F">virtual</code> Function Through a Base-Class Pointer or Reference Function Through a Base-Class Pointer or Reference
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.4 </span>Invoking a Invoking a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023675">virtual</code> Function Through an Object&#8217;s Name Function Through an Object’s Name
      7. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.5 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002367F">virtual</code> Functions in the Functions in the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023680">CommissionEmployee</code> Hierarchy Hierarchy
      8. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023687">virtual</code> Destructors Destructors
      9. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.4.7 </span>C++11: C++11: <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P7001011973000000000000000023692">final</code> Member Functions and Classes Member Functions and Classes
      10. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.5 </span>Type Fields and Type Fields and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P700101197300000000000000002369F">switch</code> Statements Statements
      11. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.6 </span>Abstract Classes and Pure Abstract Classes and Pure <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000236A8">virtual</code> Functions Functions
      12. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.6.1 </span>Pure Virtual FunctionsPure Virtual Functions
      13. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.8 </span>(Optional) Polymorphism, Virtual Functions and Dynamic Binding &#8220;Under the Hood&#8221;(Optional) Polymorphism, Virtual Functions and Dynamic Binding “Under the Hood”
      14. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">12.9 </span>Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000236D3">dynamic_cast</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000236D4">typeid</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M12_PAUL8237_10_AIE_C12.xhtml#P70010119730000000000000000236D5">type_info</code>
    14. Self-Review Exercises
    15. Exercises
    16. Making a Difference
  24. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13 </span>Stream Input/Output: A Deeper LookStream Input/Output: A Deeper Look
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2 </span>StreamsStreams
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2.1 </span>Classic Streams vs. Standard StreamsClassic Streams vs. Standard Streams
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023864">iostream</code> Library Headers Library Headers
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2.3 </span>Stream Input/Output Classes and ObjectsStream Input/Output Classes and Objects
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000238A1">iostream</code> Library Aliases Are Defined with Library Aliases Are Defined with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000238A2">typedef</code>
        2. Standard Stream Objects <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000238AD">cin, cout, cerr</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000238AE">clog</code>
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.3 </span>Stream OutputStream Output
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.3.1 </span>Output of Output of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000238D9">char*</code> Variables Variables
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.3.2 </span>Character Output Using Member Function Character Output Using Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000238EA">put</code>
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.4 </span>Stream InputStream Input
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.4.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023912">get</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023913">getline</code> Member Functions Member Functions
        1. Using Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P700101197300000000000000002391C">eof, get</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P700101197300000000000000002391D">put</code>
        2. Comparing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023950">cin</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023951">cin.get</code>
        3. Using Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023961">getline</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.4.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023972">istream</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023973">peek</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023974">putback</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023975">ignore</code>
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.4.3 </span>Type-Safe I/OType-Safe I/O
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.5 </span>Unformatted I/O Using Unformatted I/O Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P700101197300000000000000002398A">read</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P700101197300000000000000002398B">write</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P700101197300000000000000002398C">gcount</code>
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.6 </span>Stream Manipulators: A Deeper LookStream Manipulators: A Deeper Look
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.6.1 </span>Integral Stream Base: Integral Stream Base: <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000239CF">dec, oct, hex</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000239D0">setbase</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.6.2 </span>Floating-Point Precision (Floating-Point Precision (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000239ED">precision</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P70010119730000000000000000239EE">setprecision</code>))
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.6.3 </span>Field Width (Field Width (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023A01">width, setw</code>))
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.6.4 </span>User-Defined Output Stream ManipulatorsUser-Defined Output Stream Manipulators
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7 </span>Stream Format States and Stream ManipulatorsStream Format States and Stream Manipulators
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.1 </span>Trailing Zeros and Decimal Points (Trailing Zeros and Decimal Points (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023A7B">showpoint</code>))
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.2 </span>Justification (Justification (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023A90">left, right</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023A91">internal</code>))
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.3 </span>Padding (Padding (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023AB0">fill, setfill</code>))
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.4 </span>Integral Stream Base (Integral Stream Base (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023AC0">dec, oct, hex, showbase</code>))
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.5 </span>Floating-Point Numbers; Scientific and Fixed Notation (Floating-Point Numbers; Scientific and Fixed Notation (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023ADA">scientific, fixed</code>))
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.6 </span>Uppercase/Lowercase Control (Uppercase/Lowercase Control (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023AED">uppercase</code>))
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.7 </span>Specifying Boolean Format (Specifying Boolean Format (<code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023AFE">boolalpha</code>))
      8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7.8 </span>Setting and Resetting the Format State via Member Function Setting and Resetting the Format State via Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023B2B">flags</code>
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.8 </span>Stream Error StatesStream Error States
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.9 </span>Tying an Output Stream to an Input StreamTying an Output Stream to an Input Stream
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.10 </span>Wrap-Up Wrap-Up
    13. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2 </span>StreamsStreams
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023C08">iostream</code> Library Headers Library Headers
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.2.3 </span>Stream Input/Output Classes and ObjectsStream Input/Output Classes and Objects
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.3 </span>Stream OutputStream Output
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.4 </span>Stream InputStream Input
      7. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.5 </span>Unformatted I/O Using Unformatted I/O Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023C67">read</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023C68">write</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M13_PAUL8237_10_AIE_C13.xhtml#P7001011973000000000000000023C69">gcount</code>
      8. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.6 </span>Stream Manipulators: A Deeper LookStream Manipulators: A Deeper Look
      9. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.7 </span>Stream Format States and Stream ManipulatorsStream Format States and Stream Manipulators
      10. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.8 </span>Stream Error StatesStream Error States
      11. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">13.9 </span>Tying an Output Stream to an Input StreamTying an Output Stream to an Input Stream
    14. Self-Review Exercises
    15. Exercises
  25. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14 </span>File ProcessingFile Processing
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.2 </span>Files and StreamsFiles and Streams
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3 </span>Creating a Sequential FileCreating a Sequential File
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.1 </span>Opening a FileOpening a File
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.2 </span>Opening a File via the Opening a File via the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M14_PAUL8237_10_AIE_C14.xhtml#P7001011973000000000000000024019">open</code> Member Function Member Function
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.3 </span>Testing Whether a File Was Opened SuccessfullyTesting Whether a File Was Opened Successfully
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.4 </span>Overloaded Overloaded <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M14_PAUL8237_10_AIE_C14.xhtml#P7001011973000000000000000024042">bool</code> Operator Operator
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.5 </span>Processing DataProcessing Data
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.6 </span>Closing a FileClosing a File
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3.7 </span>Sample ExecutionSample Execution
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.4 </span>Reading Data from a Sequential FileReading Data from a Sequential File
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.4.1 </span>Opening a File for InputOpening a File for Input
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.4.2 </span>Reading from the FileReading from the File
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.4.3 </span>File-Position PointersFile-Position Pointers
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.4.4 </span>Case Study: Credit Inquiry ProgramCase Study: Credit Inquiry Program
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.5 </span>C++14: Reading and Writing Quoted TextC++14: Reading and Writing Quoted Text
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.6 </span>Updating Sequential FilesUpdating Sequential Files
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.7 </span>Random-Access FilesRandom-Access Files
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.8 </span>Creating a Random-Access FileCreating a Random-Access File
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.8.1 </span>Writing Bytes with Writing Bytes with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M14_PAUL8237_10_AIE_C14.xhtml#P7001011973000000000000000024129">ostream</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M14_PAUL8237_10_AIE_C14.xhtml#P700101197300000000000000002412A">write</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.8.2 </span>Converting Between Pointer Types with the Converting Between Pointer Types with the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M14_PAUL8237_10_AIE_C14.xhtml#P700101197300000000000000002413D">reinterpret_cast</code> Operator Operator
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.8.3 </span>Credit-Processing ProgramCredit-Processing Program
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.8.4 </span>Opening a File for Output in Binary ModeOpening a File for Output in Binary Mode
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.9 </span>Writing Data Randomly to a Random-Access FileWriting Data Randomly to a Random-Access File
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.9.1 </span>Opening a File for Input and Output in Binary ModeOpening a File for Input and Output in Binary Mode
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.9.2 </span>Positioning the File-Position PointerPositioning the File-Position Pointer
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.10 </span>Reading from a Random-Access File SequentiallyReading from a Random-Access File Sequentially
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.11 </span>Case Study: A Transaction-Processing ProgramCase Study: A Transaction-Processing Program
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.12 </span>Object SerializationObject Serialization
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.13 </span>Wrap-UpWrap-Up
    16. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.2 </span>Files and StreamsFiles and Streams
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.3 </span>Creating a Sequential FileCreating a Sequential File
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.4 </span>Reading Data from a Sequential FileReading Data from a Sequential File
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.5 </span>C++14: Reading and Writing Quoted TextC++14: Reading and Writing Quoted Text
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.6 </span>Updating Sequential FilesUpdating Sequential Files
        1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.7 </span>Random-Access FilesRandom-Access Files
        2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.8 </span>Creating a Random-Access FileCreating a Random-Access File
        3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.9 </span>Writing Data Randomly to a Random-Access FileWriting Data Randomly to a Random-Access File
        4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.10 </span>Reading from a Random-Access File SequentiallyReading from a Random-Access File Sequentially
        5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">14.12 </span>Object SerializationObject Serialization
      7. Self-Review Exercises
    17. Exercises
    18. Making a Difference
  26. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15</span> Standard Library Containers and Iterators Standard Library Containers and Iterators
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.2 </span>Introduction to Containers2Introduction to Containers2
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.3 </span>Introduction to IteratorsIntroduction to Iterators
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.4 </span>Introduction to AlgorithmsIntroduction to Algorithms
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5 </span>Sequence ContainersSequence Containers
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247B3">vector</code> Sequence Container Sequence Container
        1. Using <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247C7">vector</code>s and Iteratorss and Iterators
        2. Creating a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247D6">vector</code>
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247DF">vector</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247E0">size</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247E1">capacity</code>
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247EE">vector</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000247EF">push_back</code>
        5. Updated <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024803">size</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024804">capacity</code> After Modifying a After Modifying a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024805">vector</code>
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P700101197300000000000000002481D">vector</code> Growth Growth
        7. Outputting Built-in Array Contents with Pointers
        8. Outputting <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024846">vector</code> Contents with Iterators Contents with Iterators
        9. Displaying the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024876">vector</code><span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number" style="color:#52002B"><i><b>&#8217;s Contents in Reverse with <code data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024877">const_reverse_iterator</code><span class="number" style="color:#52002B"><i><b>s</b></i></span></b></i></span>
        10. C++11: <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024886">shrink_to_fit</code>
        11. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P700101197300000000000000002488E">vector</code> Element-Manipulation Functions Element-Manipulation Functions
        12. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248B1">copy</code> Algorithm Algorithm
        13. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248BB">vector</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248BC">front</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248BD">back</code>
        14. Accessing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248D4">vector</code> Elements Elements
        15. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248F6">vector</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000248F7">insert</code>
        16. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024903">vector</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024904">erase</code>
        17. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024916">vector</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024917">insert</code> with Three Arguments (Range with Three Arguments (Range <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024918">insert</code>))
        18. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024921">vector</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024922">clear</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024929">list</code> Sequence Container Sequence Container
        1. C++11: <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024936">forward_list</code> Container Container
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024941">list</code> Member Functions Member Functions
        3. Creating <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024960">list</code> Objects Objects
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024970">list</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024971">sort</code>
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P700101197300000000000000002497C">list</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P700101197300000000000000002497D">splice</code>
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024988">list</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024989">merge</code>
        7. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024997">list</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024998">pop_front</code>
        8. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249A2">list</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249A3">unique</code>
        9. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249AC">list</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249AD">swap</code>
        10. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249B3">list</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249B4">assign</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249B5">remove</code>
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P70010119730000000000000000249C1">deque</code> Sequence Container Sequence Container
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6 </span>Associative ContainersAssociative Containers
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A23">multiset</code> Associative Container Associative Container
        1. Creating a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A40">multiset</code>
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A5C">multiset</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A5D">count</code>
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A63">multiset</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A64">insert</code>
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A6D">multiset</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A6E">find</code>
        5. Inserting Elements of Another Container into a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A7D">multiset</code>
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A86">multiset</code> Member Functions Member Functions <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A87">lower_bound</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A88">upper_bound</code>
        7. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A95">pair</code> Objects and Objects and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A96">multiset</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024A97">equal_range</code>
        8. C++11: Variadic Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024ABA">tuple</code>
        9. C++14: Heterogeneous Lookup
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024ACB">set</code> Associative Container Associative Container
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024B0A">multimap</code> Associative Container Associative Container
        1. C++11: List Initializing a Key–Value Pair Container
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024B66">map</code> Associative Container Associative Container
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7 </span>Container AdaptersContainer Adapters
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024B91">stack</code> Adapter Adapter
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024BD3">queue</code> Adapter Adapter
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024C07">priority_queue</code> Adapter Adapter
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.8 </span>Class Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024C37">bitset</code>
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.9 </span>Wrap-UpWrap-Up
    12. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.2 </span>Introduction to ContainersIntroduction to Containers
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.3 </span>Introduction to IteratorsIntroduction to Iterators
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.4 </span>Introduction to AlgorithmsIntroduction to Algorithms
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5 </span>Sequence ContainersSequence Containers
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024D25">vector</code> Sequence Container Sequence Container
      7. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024D7C">list</code> Sequence Container Sequence Container
      8. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.5.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024DA4">deque</code> Sequence Container Sequence Container
      9. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6 </span>Associative ContainersAssociative Containers
      10. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024DC9">multiset</code> Associative Container Associative Container
      11. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024DF5">set</code> Associative Container Associative Container
      12. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024E06">multimap</code> Associative Container Associative Container
      13. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.6.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024E29">map</code> Associative Container Associative Container
      14. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7 </span>Container AdaptersContainer Adapters
      15. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024E3E">stack</code> Adapter Adapter
      16. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024E58">queue</code> Adapter Adapter
      17. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.7.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024E75">priority_queue</code> Adapter Adapter
      18. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">15.8 </span>Class Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M15_PAUL8237_10_AIE_C15.xhtml#P7001011973000000000000000024E83">bitset</code>
    13. Self-Review Exercises
    14. Exercises
      1. Discussion Questions
      2. Programming Exercises
    15. Recommended Reading
  27. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16</span> Standard Library Algorithms Standard Library Algorithms
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.1 </span>IntroductionIntroduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.2 </span>Minimum Iterator RequirementsMinimum Iterator Requirements
      1. Iterator Invalidation
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3 </span>Lambda ExpressionsLambda Expressions
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.1 </span>Algorithm Algorithm <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025119">for_each</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.2 </span>Lambda with an Empty IntroducerLambda with an Empty Introducer
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.3 </span>Lambda with a Nonempty Introducer&#8212;Capturing Local VariablesLambda with a Nonempty Introducer—Capturing Local Variables
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.4 </span>Lambda Return TypesLambda Return Types
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4 </span>AlgorithmsAlgorithms
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002516E">fill, fill_n</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002516F">generate</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025170">generate_n</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025184">fill</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002518E">fill_n</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025194">generate</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251A2">generate_n</code> Algorithm Algorithm
        5. Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251A9">generate_n</code> Algorithm with a Lambda Algorithm with a Lambda
        6. A Note About Reading Standard Library Algorithm Documentation
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251BF">equal</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251C0">mismatch</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251C1">lexicographical_compare</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251DB">equal</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251F0">equal</code> Algorithm with Binary Predicate Function Algorithm with Binary Predicate Function
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000251F6">mismatch</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002520F">auto</code> Variables and List Initialization Variables and List Initialization
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002521B">lexicographical_compare</code> Algorithm Algorithm
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025226">remove, remove_if</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025227">remove_copy</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025228">remove_copy_if</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025238">remove</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025243">remove_copy</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002524E">remove_if</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025269">remove_copy_if</code> Algorithm Algorithm
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025276">replace, replace_if, replace_copy</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025277">replace_copy_if</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025287">replace</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002528F">replace_copy</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002529A">replace_if</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252A4">replace_copy_if</code> Algorithm Algorithm
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.5 </span>Mathematical AlgorithmsMathematical Algorithms
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252C1">shuffle</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252D4">count</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252DB">count_if</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252E4">min_element</code> Algorithm Algorithm
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252ED">max_element</code> Algorithm Algorithm
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000252FA">C++11: minmax_element</code> Algorithm Algorithm
        7. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025304">accumulate</code> Algorithm Algorithm
        8. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002530B">transform</code> Algorithm Algorithm
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.6 </span>Basic Searching and Sorting AlgorithmsBasic Searching and Sorting Algorithms
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002532A">find</code> Algorithm Algorithm
        2. Storing Lambdas in Variables
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002533C">find_if</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002534E">sort</code> Algorithm Algorithm
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025359">binary_search</code> Algorithm Algorithm
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025367">C++11: all_of</code> Algorithm Algorithm
        7. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025372">C++11: any_of</code> Algorithm Algorithm
        8. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002537D">C++11: none_of</code> Algorithm Algorithm
        9. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025388">C++11: find_if_not</code> Algorithm Algorithm
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025394">swap, iter_swap</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025395">swap_ranges</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253A4">swap</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253AA">iter_swap</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253AF">swap_ranges</code> Algorithm Algorithm
      8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.8 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253BB">copy_backward</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253BC">merge</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253BD">unique</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253BE">reverse</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253CE">copy_backward</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253E8">merge</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253F0">back_inserter, front_inserter</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000253F1">inserter</code> Iterator Adapters Iterator Adapters
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002540A">unique</code> Algorithm Algorithm
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025410">reverse</code> Algorithm Algorithm
        6. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025416">C++11: copy_if</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025417">copy_n Algorithms</code>
      9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.9 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025424">inplace_merge</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025425">unique_copy</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025426">reverse_copy</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025435">inplace_merge</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025441">unique_copy</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002544F">reverse_copy</code> Algorithm Algorithm
      10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.10 </span>Set OperationsSet Operations
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002546A">includes</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025476">set_difference</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002547C">set_intersection</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025482">set_symmetric_difference</code> Algorithm Algorithm
        5. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025488">set_union</code> Algorithm Algorithm
      11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.11 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002548E">lower_bound</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002548F">upper_bound</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025490">equal_range</code>
        1. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254A0">lower_bound</code> Algorithm Algorithm
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254A5">upper_bound</code> Algorithm Algorithm
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254AA">equal_range</code> Algorithm Algorithm
        4. Locating Insertion Points in Sorted Sequences
      12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.12 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254C2">min</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254C3">max</code>, , <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254C4">minmax</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254C5">minmax_element</code>
        1. Algorithms <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254D5">min</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254D6">max</code> with Two Parameters with Two Parameters
        2. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254DB">C++11: min</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254DC">max</code> Algorithms with Algorithms with <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254DD">initializer_list</code> Parameters Parameters
        3. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254EB">C++11: minmax</code> Algorithm Algorithm
        4. <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000254F4">C++11: minmax_element</code> Algorithm Algorithm
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.5 </span>Function ObjectsFunction Objects
      1. Advantages of Function Objects over Function Pointers
      2. Predefined Function Objects of the Standard Template Library
      3. Using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025549">accumulate</code> Algorithm Algorithm
        1. Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025559">sumSquares</code>
        2. Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025568">SumSquaresClass</code>
        3. Calling Algorithm <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025576">accumulate</code>
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.6 </span>Standard Library Algorithm SummaryStandard Library Algorithm Summary
      1. Mutating Sequence Algorithms
      2. Nonmodifying Sequence Algorithms
      3. Sorting and Related Algorithms
      4. Numerical Algorithms
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.7 </span>Wrap-UpWrap-Up
    10. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3 </span>Lambda ExpressionsLambda Expressions
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.1 </span>Algorithm Algorithm <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025676">for_each</code>
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.2 </span>Lambda with an Empty IntroducerLambda with an Empty Introducer
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.3 </span>Lambda with a Nonempty Introducer&#8212;Capturing Local VariablesLambda with a Nonempty Introducer—Capturing Local Variables
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.3.4 </span>Lambda Return TypesLambda Return Types
      7. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025698">fill, fill_n, generate</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025699">generate_n</code>
      8. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000256A4">equal, mismatch</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000256A5">lexicographical_compare</code>
      9. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000256B1">remove, remove_if, remove_copy</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000256B2">remove_copy_if</code>
      10. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000256C3">replace, replace_if, replace_copy</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P70010119730000000000000000256C4">replace_copy_if</code>
      11. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.5 </span>Mathematical AlgorithmsMathematical Algorithms
      12. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.6 </span>Basic Searching and Sorting AlgorithmsBasic Searching and Sorting Algorithms
      13. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025712">swap, iter_swap</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025713">swap_ranges</code>
      14. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.8 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002571F">copy_backward, merge, unique</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025720">reverse</code>
      15. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.9 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002573C">inplace_merge, unique_copy</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002573D">reverse_copy</code>
      16. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.10 </span>Set OperationsSet Operations
      17. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.11 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025770">lower_bound, upper_bound</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P7001011973000000000000000025771">equal_range</code>
      18. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.4.12 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002577E">min, max, minmax</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M16_PAUL8237_10_AIE_C16.xhtml#P700101197300000000000000002577F">minmax_element</code>
      19. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">16.5 </span>Function ObjectsFunction Objects
    11. Self-Review Exercises
    12. Exercises
  28. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17</span> Exception Handling: A Deeper Look Exception Handling: A Deeper Look
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.1 </span>IntroductionIntroduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2 </span>Exception-Handling Flow of Control; Defining an Exception ClassException-Handling Flow of Control; Defining an Exception Class
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.1 </span>Defining an Exception Class to Represent the Type of Problem That Might OccurDefining an Exception Class to Represent the Type of Problem That Might Occur
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.2 </span>Demonstrating Exception HandlingDemonstrating Exception Handling
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.3 </span>Enclosing Code in a Enclosing Code in a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P70010119730000000000000000259A2">try</code> Block Block
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.4 </span>Defining a Defining a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P70010119730000000000000000259B5">catch</code> Handler to Process a Handler to Process a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P70010119730000000000000000259B6">DivideByZeroException</code>
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.5 </span>Termination Model of Exception HandlingTermination Model of Exception Handling
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.6 </span>Flow of Program Control When the User Enters a Nonzero DenominatorFlow of Program Control When the User Enters a Nonzero Denominator
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.7 </span>Flow of Program Control When the User Enters a Denominator of ZeroFlow of Program Control When the User Enters a Denominator of Zero
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.3 </span>Rethrowing an ExceptionRethrowing an Exception
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.4 </span>Stack UnwindingStack Unwinding
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.5 </span>When to Use Exception HandlingWhen to Use Exception Handling
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025A9D">noexcept</code>: Declaring Functions That Do Not Throw Exceptions: Declaring Functions That Do Not Throw Exceptions
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.7 </span>Constructors, Destructors and Exception HandlingConstructors, Destructors and Exception Handling
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.7.1 </span>Destructors Called Due to ExceptionsDestructors Called Due to Exceptions
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.7.2 </span>Initializing Local Objects to Acquire ResourcesInitializing Local Objects to Acquire Resources
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.8 </span>Processing Processing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025ACC">new</code> Failures Failures
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.8.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025ADB">new</code> Throwing Throwing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025ADC">bad_alloc</code> on Failure on Failure
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.8.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025AF7">new</code> Returning Returning <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025AF8">nullptr</code> on Failure on Failure
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.8.3 </span>Handling Handling <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025B0C">new</code> Failures Using Function Failures Using Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025B0D">set_new_handler</code>
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.9 </span>Class Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025B44">unique_ptr</code> and Dynamic Memory Allocation and Dynamic Memory Allocation
      1. Demonstrating <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025B57">unique_ptr</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.9.1 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025B9A">unique_ptr</code> Ownership Ownership
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.9.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025BA9">unique_ptr</code> to a Built-In Array to a Built-In Array
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.10 </span>Standard Library Exception HierarchyStandard Library Exception Hierarchy
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.11 </span>Wrap-UpWrap-Up
    15. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.1 </span>Defining an Exception Class to Represent the Type of Problem That Might OccurDefining an Exception Class to Represent the Type of Problem That Might Occur
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.5 </span>Termination Model of Exception HandlingTermination Model of Exception Handling
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.2.7 </span>Flow of Program Control When the User Enters a Denominator of ZeroFlow of Program Control When the User Enters a Denominator of Zero
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.3 </span>Rethrowing an ExceptionRethrowing an Exception
      6. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.4 </span>Stack UnwindingStack Unwinding
      7. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.5 </span>When to Use Exception HandlingWhen to Use Exception Handling
      8. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025C78">noexcept</code>: Declaring Functions That Do Not Throw Exceptions: Declaring Functions That Do Not Throw Exceptions
      9. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.7.1 </span>Destructors Called Due to ExceptionsDestructors Called Due to Exceptions
      10. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.7.2 </span>Initializing Local Objects to Acquire ResourcesInitializing Local Objects to Acquire Resources
      11. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.8 </span>Processing Processing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025C92">new</code> Failures Failures
      12. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.9 </span>Class Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M17_PAUL8237_10_AIE_C17.xhtml#P7001011973000000000000000025CA9">unique_ptr</code> and Dynamic Memory Allocation and Dynamic Memory Allocation
      13. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">17.10 </span>Standard Library Exception HierarchyStandard Library Exception Hierarchy
    16. Self-Review Exercises
    17. Exercises
  29. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18</span> Introduction to Custom Templates Introduction to Custom Templates
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.1 </span>IntroductionIntroduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2 </span>Class TemplatesClass Templates
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2.1 </span>Creating Class Template Stack&lt;T&gt;Creating Class Template Stack<T>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2.2 </span>Class Template Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M18_PAUL8237_10_AIE_C18.xhtml#P7001011973000000000000000025E1F">Stack&lt;T&gt;</code>&#8217;s Data Representation’s Data Representation
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2.3 </span>Class Template Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M18_PAUL8237_10_AIE_C18.xhtml#P7001011973000000000000000025E32">Stack&lt;T&gt;</code>&#8217;s Member Functions’s Member Functions
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2.4 </span>Declaring a Class Template&#8217;s Member Functions Outside the Class Template DefinitionDeclaring a Class Template’s Member Functions Outside the Class Template Definition
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2.5 </span>Testing Class Template Testing Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M18_PAUL8237_10_AIE_C18.xhtml#P7001011973000000000000000025E61">Stack&lt;T&gt;</code>
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.3 </span>Function Template to Manipulate a Class-Template Specialization ObjectFunction Template to Manipulate a Class-Template Specialization Object
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.4 </span>Nontype ParametersNontype Parameters
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.5 </span>Default Arguments for Template Type ParametersDefault Arguments for Template Type Parameters
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.6 </span>Overloading Function TemplatesOverloading Function Templates
      1. Matching Process for Overloaded Functions
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.7 </span>Wrap-UpWrap-Up
    10. Summary
      1. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.1 </span>IntroductionIntroduction
      2. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.2 </span>Class TemplatesClass Templates
      3. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.4 </span>Nontype ParametersNontype Parameters
      4. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.5 </span>Default Arguments for Template Type ParametersDefault Arguments for Template Type Parameters
      5. Section <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">18.6 </span>Overloading Function TemplatesOverloading Function Templates
    11. Self-Review Exercises
    12. Exercises
  30. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19 </span>Custom Templatized Data StructuresCustom Templatized Data Structures
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.1 </span>Introduction Introduction
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.1.1 </span>Always Prefer the Standard Library&#8217;s Containers, Iterators and Algorithms, if PossibleAlways Prefer the Standard Library’s Containers, Iterators and Algorithms, if Possible
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.1.2 </span>Special Section: Building Your Own CompilerSpecial Section: Building Your Own Compiler
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.2 </span>Self-Referential ClassesSelf-Referential Classes
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3 </span>Linked ListsLinked Lists
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.1 </span>Testing Our Linked List ImplementationTesting Our Linked List Implementation
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.2 </span>Class Template Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026090">ListNode</code>
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.3 </span>Class Template Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000260C0">List</code>
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.4 </span>Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000260E3">insertAtFront</code>
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.5 </span>Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026109">insertAtBack</code>
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.6 </span>Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026128">removeFromFront</code>
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.7 </span>Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026152">removeFromBack</code>
      8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.8 </span>Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P700101197300000000000000002618A">print</code>
      9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.3.9 </span>Circular Linked Lists and Double Linked ListsCircular Linked Lists and Double Linked Lists
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.4 </span>StacksStacks
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.4.1 </span>Taking Advantage of the Relationship Between Taking Advantage of the Relationship Between <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000261C6">Stack</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000261C7">List</code>
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.4.2 </span>Implementing a Class Template Implementing a Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000261D2">Stack</code> Class Based By Inheriting from Class Based By Inheriting from <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000261D3">List</code>
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.4.3 </span>Dependent Names in Class TemplatesDependent Names in Class Templates
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.4.4 </span>Testing the Testing the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026209">Stack</code> Class Template Class Template
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.4.5 </span>Implementing a Class Template Implementing a Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P700101197300000000000000002621E">Stack</code> Class With Composition of a Class With Composition of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P700101197300000000000000002621F">List</code> Object Object
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.5 </span>QueuesQueues
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.5.1 </span>Applications of QueuesApplications of Queues
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.5.2 </span>Implementing a Class Template Implementing a Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026241">Queue</code> Class Based By Inheriting from Class Based By Inheriting from <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026242">List</code>
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.5.3 </span>Testing the Testing the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P700101197300000000000000002626E">Queue</code> Class Template Class Template
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6 </span>TreesTrees
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.1 </span>Basic TerminologyBasic Terminology
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.2 </span>Binary Search TreesBinary Search Trees
        1. Implementing the Binary Search Tree Program
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.3 </span>Testing the Testing the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000262A1">Tree</code> Class Template Class Template
      4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.4 </span>Class Template Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000262B8">TreeNode</code>
      5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.5 </span>Class Template Class Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000262DD">Tree</code>
      6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000262F1">Tree</code> Member Function Member Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P70010119730000000000000000262F2">insertNodeHelper</code>
      7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.7 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M19_PAUL8237_10_AIE_C19.xhtml#P7001011973000000000000000026305">Tree</code> Traversal Functions Traversal Functions
        1. Inorder Traversal Algorithm
        2. Preorder Traversal Algorithm
        3. Postorder Traversal Algorithm
      8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.8 </span>Duplicate EliminationDuplicate Elimination
      9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.6.9 </span>Overview of the Binary Tree ExercisesOverview of the Binary Tree Exercises
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">19.7 </span>Wrap-Up Wrap-Up
    10. Summary
    11. Self-Review Exercises
    12. Exercises
    13. Special Section: Building Your Own Compiler
  31. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20 </span>Searching and SortingSearching and Sorting
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.2 </span>Searching AlgorithmsSearching Algorithms
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.2.1 </span>Linear SearchLinear Search
        1. Function Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P70010119730000000000000000265FA">linearSearch</code>
        2. Big O: Constant Runtime
        3. Big O: Linear Runtime
        4. Big O: Quadratic Runtime
        5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="inlineequation"><m:math display="inline" alttext="" data-uri="" altimg-width="48" altimg-height="22" altimg="../images/e0845-05.png"><m:mrow><m:mi mathcolor="#632034">O</m:mi><m:mrow><m:mo mathcolor="#632034">(</m:mo><m:msup><m:mrow><m:mi mathcolor="#632034">n</m:mi></m:mrow><m:mrow><m:mn mathcolor="#632034">2</m:mn></m:mrow></m:msup><m:mo mathcolor="#632034">)</m:mo></m:mrow></m:mrow></m:math></span> Performance Performance
        6. Linear Search’s Runtime
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.2.2 </span>Binary SearchBinary Search
        1. Binary Search of 15 Integer Values
        2. Binary Search Example
        3. Function Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P7001011973000000000000000026650">binarySearch</code>
        4. Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P700101197300000000000000002666D">main</code>
        5. Efficiency of Binary Search
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.3 </span>Sorting AlgorithmsSorting Algorithms
      1. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.3.1 </span>Insertion SortInsertion Sort
        1. Insertion Sort Algorithm
        2. First Iteration
        3. Second Iteration
        4. Third Iteration and Beyond
        5. Function Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P70010119730000000000000000266D8">insertionSort</code>
        6. Big O: Efficiency of Insertion Sort
      2. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.3.2 </span>Selection SortSelection Sort
        1. Selection Sort Algorithm
        2. First Iteration
        3. Second Iteration
        4. Third Iteration
        5. Function Template <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P700101197300000000000000002670A">selectionSort</code>
        6. Efficiency of Selection Sort
      3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.3.3 </span>Merge Sort (A Recursive Implementation)Merge Sort (A Recursive Implementation)
        1. Sample Merge
        2. Recursive Implementation
        3. Demonstrating Merge Sort
        4. Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P700101197300000000000000002675B">mergeSort</code>
        5. Function <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M20_PAUL8237_10_AIE_C20.xhtml#P700101197300000000000000002676F">merge</code>
        6. Efficiency of Merge Sort
        7. Summary of Searching and Sorting Algorithm Efficiencies
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">20.4 </span>Wrap-Up Wrap-Up
    7. Summary
    8. Self-Review Exercises
    9. Exercises
  32. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21 </span>Class Class <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P70010119730000000000000000268E7">string</code> and String Stream Processing: A Deeper and String Stream Processing: A Deeper
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.1 </span>Introduction1Introduction1
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P700101197300000000000000002698A">string</code> Assignment and Concatenation Assignment and Concatenation
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.3 </span>Comparing Comparing <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P70010119730000000000000000269DB">string</code>ss
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.4 </span>SubstringsSubstrings
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.5 </span>Swapping Swapping <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P7001011973000000000000000026A45"><b>string</b></code>ss
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P7001011973000000000000000026A5F">string</code> Characteristics Characteristics
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.7 </span>Finding Substrings and Characters in a Finding Substrings and Characters in a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P7001011973000000000000000026AA7">string</code>
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.8 </span>Replacing Characters in a Replacing Characters in a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P7001011973000000000000000026AE4"><b>string</b></code>
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.9 </span>Inserting Characters into a Inserting Characters into a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P7001011973000000000000000026B06">string</code>
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.10 </span>Conversion to Pointer-Based Conversion to Pointer-Based <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M21_PAUL8237_10_AIE_C21.xhtml#P7001011973000000000000000026B25">char</code>* Strings* Strings
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.11 </span>IteratorsIterators
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.12 </span>String Stream ProcessingString Stream Processing
    15. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.13 </span>C++11 Numeric Conversion FunctionsC++11 Numeric Conversion Functions
    16. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">21.14 </span>Wrap-UpWrap-Up
    17. Summary
    18. Self-Review Exercises
    19. Exercises
    20. Making a Difference
  33. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22 </span>Bits, Characters, C Strings and Bits, Characters, C Strings and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M22_PAUL8237_10_AIE_C22.xhtml#P7001011973000000000000000026EC3">struct</code>ss
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.2 </span>Structure DefinitionsStructure Definitions
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M22_PAUL8237_10_AIE_C22.xhtml#P7001011973000000000000000026F43">typedef</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="M22_PAUL8237_10_AIE_C22.xhtml#P7001011973000000000000000026F44">using</code>
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.4 </span>Example: Card Shuffling and Dealing SimulationExample: Card Shuffling and Dealing Simulation
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.5 </span>Bitwise OperatorsBitwise Operators
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.6 </span>Bit FieldsBit Fields
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.7 </span>Character-Handling LibraryCharacter-Handling Library
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.8 </span>C String-Manipulation FunctionsC String-Manipulation Functions
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.9 </span>C String-Conversion FunctionsC String-Conversion Functions
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.10 </span>Search Functions of the C String-Handling LibrarySearch Functions of the C String-Handling Library
    13. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.11 </span>Memory Functions of the C String-Handling LibraryMemory Functions of the C String-Handling Library
    14. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">22.12 </span>Wrap-UpWrap-Up
    15. Summary
    16. Self-Review Exercises
    17. Exercises
    18. Special Section: Advanced String-Manipulation Exercises
    19. Challenging String-Manipulation Projects
  34. Chapters on the Web
  35. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">A</span> Operator Precedence and Associativity Operator Precedence and Associativity
  36. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">B </span>ASCII Character SetASCII Character Set
  37. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">C </span>Fundamental TypesFundamental Types
  38. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D </span>Number SystemsNumber Systems
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D.2 </span>Abbreviating Binary Numbers as Octal and Hexadecimal NumbersAbbreviating Binary Numbers as Octal and Hexadecimal Numbers
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D.3 </span>Converting Octal and Hexadecimal Numbers to Binary NumbersConverting Octal and Hexadecimal Numbers to Binary Numbers
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D.4 </span>Converting from Binary, Octal or Hexadecimal to DecimalConverting from Binary, Octal or Hexadecimal to Decimal
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D.5 </span>Converting from Decimal to Binary, Octal or HexadecimalConverting from Decimal to Binary, Octal or Hexadecimal
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">D.6 </span>Negative Binary Numbers: Two&#8217;s Complement NotationNegative Binary Numbers: Two’s Complement Notation
    9. Summary
    10. Self-Review Exercises
    11. Answers to Self-Review Exercises
    12. Exercises
  39. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E </span>PreprocessorPreprocessor
    1. Objectives
    2. Outline
    3. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.1 </span>Introduction Introduction
    4. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.2 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="Z06_PAUL8237_10_AIE_APP5.xhtml#P7001011973000000000000000027F77">#include</code> Preprocessing Directive Preprocessing Directive
    5. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.3 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="Z06_PAUL8237_10_AIE_APP5.xhtml#P7001011973000000000000000027F88">#define</code> Preprocessing Directive: Symbolic Constants Preprocessing Directive: Symbolic Constants
    6. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.4 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="Z06_PAUL8237_10_AIE_APP5.xhtml#P7001011973000000000000000027FA4">#define</code> Preprocessing Directive: Macros Preprocessing Directive: Macros
    7. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.5 </span>Conditional CompilationConditional Compilation
    8. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.6 </span><code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="Z06_PAUL8237_10_AIE_APP5.xhtml#P7001011973000000000000000028027">#error</code> and and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" data-uri="Z06_PAUL8237_10_AIE_APP5.xhtml#P7001011973000000000000000028028">#pragma</code> Preprocessing Directives Preprocessing Directives
    9. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.7 </span>Operators # and ##Operators # and ##
    10. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.8 </span>Predefined Symbolic ConstantsPredefined Symbolic Constants
    11. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.9 </span>AssertionsAssertions
    12. <span xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:epub="http://www.idpf.org/2007/ops" class="number">E.10 </span>Wrap-UpWrap-Up
    13. Summary
    14. Self-Review Exercises
    15. Answers to Self-Review Exercises
    16. Exercises
  40. Appendices on the Web
  41. Index
    1. Symbols
    2. Numerics
    3. A
    4. B
    5. C
    6. D
    7. E
    8. F
    9. G
    10. H
    11. I
    12. J
    13. K
    14. L
    15. M
    16. N
    17. O
    18. P
    19. Q
    20. R
    21. S
    22. T
    23. U
    24. V
    25. W
    26. X
    27. Y
    28. Z