Create bookmark
C++ Cookbook
Solutions and Examples for C++ Programmers
Notes
Please login to add notes
- Table of Contents
- + Preface
-
+
Building C++ Applications
-
+
1.0 Introduction to Building
- + 1.1 Obtaining and Installing GCC
- + 1.2 Building a Simple “Hello, World” Application from the Command Line
- + 1.3 Building a Static Library from the Command Line
-
+
1.4 Building a Dynamic Library from the Command Line
- + 1.5 Building a Complex Application from the Command Line
- + 1.6 Installing Boost.Build
- + 1.7 Building a Simple “Hello, World” Application Using Boost.Build
- + 1.8 Building a Static Library Using Boost.Build
- + 1.9 Building a Dynamic Library Using Boost.Build
- + 1.10 Building a Complex Application Using Boost.Build
- + 1.11 Building a Static Library with an IDE
- + 1.12 Building a Dynamic Library with an IDE
- + 1.13 Building a Complex Application with an IDE
- + 1.14 Obtaining GNU make
- + 1.15 Building A Simple “Hello, World” Application with GNU make
- + 1.16 Building a Static Library with GNU Make
- + 1.17 Building a Dynamic Library with GNU Make
- + 1.18 Building a Complex Application with GNU make
- + 1.19 Defining a Macro
- + 1.20 Specifying a Command-Line Option from Your IDE
- + 1.21 Producing a Debug Build
- + 1.22 Producing a Release Build
- + 1.23 Specifying a Runtime Library Variant
- + 1.24 Enforcing Strict Conformance to the C++ Standard
- + 1.25 Causing a Source File to Be Linked Automatically Against a Specified Library
- + 1.26 Using Exported Templates
-
+
1.0 Introduction to Building
- + Code Organization
-
+
Numbers
- 3.0 Introduction
- + 3.1 Converting a String to a Numeric Type
- + 3.2 Converting Numbers to Strings
- + 3.3 Testing Whether a String Contains a Valid Number
- + 3.4 Comparing Floating-Point Numbers with Bounded Accuracy
- + 3.5 Parsing a String Containing a Number in Scientific Notation
- + 3.6 Converting Between Numeric Types
- + 3.7 Getting the Minimum and Maximum Values for a Numeric Type
-
+
Strings and Text
- 4.0 Introduction
- + 4.1 Padding a String
- + 4.2 Trimming a String
- + 4.3 Storing Strings in a Sequence
- + 4.4 Getting the Length of a String
- + 4.5 Reversing a String
- + 4.6 Splitting a String
- + 4.7 Tokenizing a String
- + 4.8 Joining a Sequence of Strings
- + 4.9 Finding Things in Strings
- + 4.10 Finding the nth Instance of a Substring
- + 4.11 Removing a Substring from a String
- + 4.12 Converting a String to Lower- or Uppercase
- + 4.13 Doing a Case-Insensitive String Comparison
- + 4.14 Doing a Case-Insensitive String Search
- + 4.15 Converting Between Tabs and Spaces in a Text File
- + 4.16 Wrapping Lines in a Text File
- + 4.17 Counting the Number of Characters, Words, and Lines in a Text File
- + 4.18 Counting Instances of Each Word in a Text File
- + 4.19 Add Margins to a Text File
- + 4.20 Justify a Text File
- + 4.21 Squeeze Whitespace to Single Spaces in a Text File
- + 4.22 Autocorrect Text as a Buffer Changes
- + 4.23 Reading a Comma-Separated Text File
- + 4.24 Using Regular Expressions to Split a String
- + Dates and Times
-
+
Managing Data with Containers
- 6.0 Introduction
- + 6.1 Using vectors Instead of Arrays
- + 6.2 Using vectors Efficiently
- + 6.3 Copying a vector
- + 6.4 Storing Pointers in a vector
- + 6.5 Storing Objects in a list
- + 6.6 Mapping strings to Other Things
- + 6.7 Using Hashed Containers
- + 6.8 Storing Objects in Sorted Order
- + 6.9 Storing Containers in Containers
-
+
Algorithms
- 7.0 Introduction
- + 7.1 Iterating Through a Container
- + 7.2 Removing Objects from a Container
- + 7.3 Randomly Shuffling Data
- + 7.4 Comparing Ranges
- + 7.5 Merging Data
- + 7.6 Sorting a Range
- + 7.7 Partitioning a Range
- + 7.8 Performing Set Operations on Sequences
- + 7.9 Transforming Elements in a Sequence
- + 7.10 Writing Your Own Algorithm
- + 7.11 Printing a Range to a Stream
-
+
Classes
- 8.0 Introduction
- + 8.1 Initializing Class Member Variables
- + 8.2 Using a Function to Create Objects (a.k.a. Factory Pattern)
- + 8.3 Using Constructors and Destructors to Manage Resources (or RAII)
- + 8.4 Automatically Adding New Class Instances to a Container
- + 8.5 Ensuring a Single Copy of a Member Variable
- + 8.6 Determining an Object’s Type at Runtime
- + 8.7 Determining if One Object’s Class Is a Subclass of Another
- + 8.8 Giving Each Instance of a Class a Unique Identifier
- + 8.9 Creating a Singleton Class
- + 8.10 Creating an Interface with an Abstract Base Class
- + 8.11 Writing a Class Template
- + 8.12 Writing a Member Function Template
- + 8.13 Overloading the Increment and Decrement Operators
- + 8.14 Overloading Arithmetic and Assignment Operators for Intuitive Class Behavior
- + 8.15 Calling a Superclass Virtual Function
-
+
Exceptions and Safety
-
+
Streams and Files
- 10.0 Introduction
- + 10.1 Lining Up Text Output
- + 10.2 Formatting Floating-Point Output
- + 10.3 Writing Your Own Stream Manipulators
- + 10.4 Making a Class Writable to a Stream
- + 10.5 Making a Class Readable from a Stream
- + 10.6 Getting Information About a File
- + 10.7 Copying a File
- + 10.8 Deleting or Renaming a File
- + 10.9 Creating a Temporary Filename and File
- + 10.10 Creating a Directory
- + 10.11 Removing a Directory
- + 10.12 Reading the Contents of a Directory
- + 10.13 Extracting a File Extension from a String
- + 10.14 Extracting a Filename from a Full Path
- + 10.15 Extracting a Path from a Full Path and Filename
- + 10.16 Replacing a File Extension
- + 10.17 Combining Two Paths into a Single Path
-
+
Science and Mathematics
- 11.0 Introduction
- + 11.1 Computing the Number of Elements in a Container
- + 11.2 Finding the Greatest or Least Value in a Container
- + 11.3 Computing the Sum and Mean of Elements in a Container
- + 11.4 Filtering Values Outside a Given Range
- + 11.5 Computing Variance, Standard Deviation, and Other Statistical Functions
- + 11.6 Generating Random Numbers
- + 11.7 Initializing a Container with Random Numbers
- + 11.8 Representing a Dynamically Sized Numerical Vector
- + 11.9 Representing a Fixed-Size Numerical Vector
- + 11.10 Computing a Dot Product
- + 11.11 Computing the Norm of a Vector
- + 11.12 Computing the Distance Between Two Vectors
- + 11.13 Implementing a Stride Iterator
- + 11.14 Implementing a Dynamically Sized Matrix
- + 11.15 Implementing a Constant-Sized Matrix
- + 11.16 Multiplying Matricies
- + 11.17 Computing the Fast Fourier Transform
- + 11.18 Working with Polar Coordinates
- + 11.19 Performing Arithmetic on Bitsets
- + 11.20 Representing Large Fixed-Width Integers
- + 11.21 Implementing Fixed-Point Numbers
-
+
Multithreading
-
+
Internationalization
-
+
XML
- 14.0 Introduction
- + 14.1 Parsing a Simple XML Document
- + 14.2 Working with Xerces Strings
- + 14.3 Parsing a Complex XML Document
- + 14.4 Manipulating an XML Document
- + 14.5 Validating an XML Document with a DTD
- + 14.6 Validating an XML Document with a Schema
- + 14.7 Transforming an XML Document with XSLT
- + 14.8 Evaluating an XPath Expression
- + 14.9 Using XML to Save and Restore a Collection of Objects
-
+
Miscellaneous
- 15.0 Introduction
- + 15.1 Using Function Pointers for Callbacks
- + 15.2 Using Pointers to Class Members
- + 15.3 Ensuring That a Function Doesn’t Modify an Argument
- + 15.4 Ensuring That a Member Function Doesn’t Modify Its Object
- + 15.5 Writing an Operator That Isn’t a Member Function
- + 15.6 Initializing a Sequence with Comma-Separated Values
- Index
Despite its highly adaptable and flexible nature, C++ is also one of the more complex programming languages to learn. Once mastered, however, it can help you organize and process information with amazing efficiency and quickness.
The C++ Cookbook will make your path to mastery much shorter. This practical, problem-solving guide is ideal if you're an engineer, programmer, or researcher writing an application for one of the legions of platforms on which C++ runs. The algorithms provided in C++ Cookbook will jump-start your development by giving you some basic building blocks that you don't have to develop on your own.
Less a tutorial than a problem-solver, the book addresses many of the most common problems you're likely encounter--whether you've been programming in C++ for years or you're relatively new to the language. Here are just some of the time-consuming tasks this book contains practical solutions for:
Reading the contents of a directory
Creating a singleton class
Date and time parsing/arithmetic
String and text manipulation
Working with files
Parsing XML
Using the standard containers
Typical of O'Reilly's "Cookbook" series, C++ Cookbook is written in a straightforward format, featuring recipes that contain problem statements and code solutions, and apply not to hypothetical situations, but those that you're likely to encounter. A detailed explanation then follows each recipe in order to show you how and why the solution works. This question-solution- discussion format is a proven teaching method, as any fan of the "Cookbook" series can attest to. This book will move quickly to the top of your list of essential C++ references.
Test the closed alpha on paperc.com
Book Details
Authors
D. Stephens, Christopher Diggins, Jonathan Turkanis, and Jeff Cogswell
Categories
Computers > Programming Languages > C++
Publishers
Publication year : 2007
License: All rights reserved ©
Times read: 2,384

