Description
Accelerated C++ introduces a radical new approach to teaching C++. It starts with the most useful concepts rather than the most primitive ones, so the student can begin writing programs immediately. It describes real problems and solutions, not just language features. And it includes the standard library from the start. The authors proved the effectiveness of this approach in their courses at Stanford and Princeton, where their students learned to write substantial programs their first day in the classroom.
C++--Intermediate Programming.
Table Of Contents
Preface.0. Getting Started.
Comments.
#include.
The Main Function.
Curly Braces.
Using the Standard Library for Output.
The Return Statement.
A Slightly Deeper Look.
Details.
#include.
The Main Function.
Curly Braces.
Using the Standard Library for Output.
The Return Statement.
A Slightly Deeper Look.
Details.
1. Working with Strings.
Input.
Framing a Name.
Details.
Framing a Name.
Details.
2. Looping and Counting.
The Problem.
Overall Structure.
Writing an Unknown Number of Rows.
Writing a Row.
The Complete Framing Program.
Counting.
Details.
Overall Structure.
Writing an Unknown Number of Rows.
Writing a Row.
The Complete Framing Program.
Counting.
Details.
3. Working with Batches of Data.
Computing Student Grades.
Using Medians Instead of Averages.
Details.
Using Medians Instead of Averages.
Details.
4.Organizing Programs and Data.
Organizing computations.
Organizing Data.
Putting it All Together.
Partitioning the Grading Program.
The Revised Grading Program.
Details.
Organizing Data.
Putting it All Together.
Partitioning the Grading Program.
The Revised Grading Program.
Details.
5. Using Sequential Containers and Analyzing Strings.
Separating Students into Categories.
Iterators.
Using Iterators Instead of Indices.
Rethinking Our Data Structure for Better Performance.
The List Type.
Taking Strings Apart.
Testing Our Split Function.
Putting Strings Together.
Details.
Iterators.
Using Iterators Instead of Indices.
Rethinking Our Data Structure for Better Performance.
The List Type.
Taking Strings Apart.
Testing Our Split Function.
Putting Strings Together.
Details.
6. Using Library Algorithms.
Analyzing Strings.
Comparing Grading Schemes.
Classifying Students, Revisited.
Algorithms, Containers, and Iterators.
Details.
Comparing Grading Schemes.
Classifying Students, Revisited.
Algorithms, Containers, and Iterators.
Details.
7. Using Associative Containers.
Containers that Support Efficient Look-Up.
Counting Words.
Generating a Cross-Reference Table.
Generating Sentences.
A Note on Performance.
Details.
Counting Words.
Generating a Cross-Reference Table.
Generating Sentences.
A Note on Performance.
Details.
8. Writing Generic Functions.
What is a Generic Function?
Data-Structure Independence.
Input and Output Iterators.
Using Iterators for Flexibility.
Details.
Data-Structure Independence.
Input and Output Iterators.
Using Iterators for Flexibility.
Details.
9. Defining New Types.
Student_info revisited.
Class Types.
Protection.
The Student_info class.
Constructors.
Using the Student_info class.
Details.
Class Types.
Protection.
The Student_info class.
Constructors.
Using the Student_info class.
Details.
10. Managing Memory and Low-Level Data Structures.
Pointers and Arrays.
String Literals Revisited.
Initializing Arrays of Character Pointers.
Arguments to Main.
Reading and Writing Files.
Three Kinds of Memory Management.
Details.
String Literals Revisited.
Initializing Arrays of Character Pointers.
Arguments to Main.
Reading and Writing Files.
Three Kinds of Memory Management.
Details.
11. Defining Abstract Data Types.
The Vec Class.
Implementing the Vec Class.
Copy Control.
Dynamic Vecs.
Flexible Memory Management.
Details.
Implementing the Vec Class.
Copy Control.
Dynamic Vecs.
Flexible Memory Management.
Details.
12. Making Class Objects Act Like Values.
A Simple String Class.
Automatic Conversions.
Str Operations.
Some Conversions are Hazardous.
Conversion Operators.
Conversions and Memory Management.
Details.
Automatic Conversions.
Str Operations.
Some Conversions are Hazardous.
Conversion Operators.
Conversions and Memory Management.
Details.
13. Using Inheritance and Dynamic Binding.
Inheritance.
Polymorphism and Virtual Functions.
Using Inheritance to Solve Our Problem.
A Simple Handle Class.
Using the Handle Class.
Subtleties.
Details.
Polymorphism and Virtual Functions.
Using Inheritance to Solve Our Problem.
A Simple Handle Class.
Using the Handle Class.
Subtleties.
Details.
14. Managing Memory (Almost) Automatically.
Handles that Copy their Objects.
Reference-Counted Handles.
Handles that Let you Decide When to Share Data.
An Improvement on Controllable Handles.
Details.
Reference-Counted Handles.
Handles that Let you Decide When to Share Data.
An Improvement on Controllable Handles.
Details.
15. Revisiting Character Pictures.
Design.
Implementation.
Details.
Implementation.
Details.
16. Where Do We Go From Here?
Use the Abstractions You Have.
Learn More.
Learn More.
Appendix A. Language Details.
Declarations.
Types.
Expressions.
Statements.
Types.
Expressions.
Statements.
Appendix B. Library Summary.
Input-Output.
Containers and Iterators.
Algorithms.
Containers and Iterators.
Algorithms.
Index. 020170353XT04062001