Accelerated C++ : practical programming by example
معرفی کتاب «Accelerated C++ : practical programming by example» نوشتهٔ Andrew Koenig, Barbara E. Moo، منتشرشده توسط نشر Addison-Wesley Professional در سال 2000. این کتاب در 350 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Accelerated C++ : practical programming by example» در دستهٔ بدون دستهبندی قرار دارد.
If you dont have a lot of time, but still want to learn the latest in C++, you dont have to learn C first. You might learn more by digging into current language features and classes from the very beginning. Thats the approach thats offered by Accelerated C++, a text that delves into more advanced C++ features like templates and Standard Template Library (STL) collection classes early on. This book arguably can get a motivated beginning programmer into C++ more quickly than other available tutorials. What separates this title from the rest of the pack is that it jumps right in with samples that take advantage of the Standard C++ of today--from streams to built-in container classes, such as vectors and linked lists. Early examples are more complex than in other books, but the thoroughness and relaxed pace of the explanations will bring the novice up to speed. (Although it ships at a slender 350 pages, Accelerated C++ is packed with samples, tips, and example problems about 10 per chapter.) After a tour of basic C++, the book looks at more advanced C++ features, such as templates, including built-in support for containers. Besides tapping the strength of Standard C++, you also will learn to design with your own templates. (Other tutorials would defer this material until later on.) The authors have tested the approach in the book in their own teaching, and honed a set of worthwhile examples that will help anyone get familiar with these powerful language features. All examples make use of the command line and console (without GUI programs), but the advantage is that this code should run on any of todays operating systems and compilers. Later sections cover the basics of class design, which include good coverage of operator overloading and inheritance. With its innovative approach to teaching the language, Accelerated C++ will challenge readers in the right way. It suggests that you dont need to learn C to be productive in C++. Written in an approachable style, it deserves a close look from any C++ novice. --Richard Dragan Topics covered: Introduction to C++ Console I/O with stream classes Basic string handling Loop and flow-control statements Arrays Using functions and methods Using Standard Template Library (STL) containers (vectors, linked lists, and maps) Iterators Sorting and generic functions Basic class design Pointers and arrays File I/O Memory-management techniques, including statically and dynamically allocated memory Adding stream support to custom classes Conversion operators Operator overloading Friend functions Inheritance Polymorphism and virtual functions Handle idioms for classes, including reference counting Quick reference to the C++ language Product Description Want to learn how to program in C++ immediately? Want to start writing better, more powerful C++ programs today? Accelerated C++s uniquely modern approach will help you learn faster and more fluently than you ever believed possible. Based on the authors intensive summer C++ courses at Stanford University, Accelerated C++ covers virtually every concept that most professional C++ programmers will ever use -- but it turns the «traditional» C++ curriculum upside down, starting with the high-level C++ data structures and algorithms that let you write robust programs immediately. Once youre getting results, Accelerated C++ takes you «under the hood,» introducing complex language features such as memory management in context, and explaining exactly how and when to use them. From start to finish, the book concentrates on solving problems, rather than learning language and library features for their own sake. The result: Youll be writing real-world programs in no time -- and outstanding code faster than you ever imagined. Cover 2 Table of Contents 3 Copyright 6 The C++ In-Depth Series 8 Preface 9 Dedication 14 Chapter 0 Getting Started 15 0.1 Comments 15 0.2 #include 17 0.3 The main function 17 0.4 Curly braces 18 0.5 Using the standard library for output 19 0.6 The return statement 19 0.7 A slightly deeper look 21 0.8 Details 23 Chapter 1 Working with strings 27 1.1 Input 27 1.2 Framing a name 31 1.3 Details 35 Chapter 2 Looping and counting 39 2.1 The problem 39 2.2 Overall structure 40 2.3 Writing an unknown number of rows 41 2.4 Writing a row 46 2.5 The complete framing program 52 2.6 Counting 57 2.7 Details 59 Chapter 3 Working with batches of data 63 3.1 Computing student grades 63 3.2 Using medians instead of averages 71 3.3 Details 80 Chapter 4 Organizing programs and data 83 4.1 Organizing computations 83 4.2 Organizing data 95 4.3 Putting it all together 101 4.4 Partitioning the grading program 105 4.5 The revised grading program 109 4.6 Details 111 Chapter 5 Using sequential containers and analyzing strings 115 5.1 Separating students into categories 0 5.2 Iterators 120 5.3 Using iterators instead of indices 124 5.4 Rethinking our data structure for better performance 127 5.5 The list type 128 5.6 Taking strings apart 132 5.7 Testing our split function 136 5.8 Putting strings together 138 5.9 Details 144 Chapter 6 Using library algorithms 150 6.1 Analyzing strings 150 6.2 Comparing grading schemes 161 6.3 Classifying students, revisited 170 6.4 Algorithms, containers, and iterators 174 6.5 Details 176 Chapter 7 Using associative containers 179 7.1 Containers that support efficient look-up 179 7.2 Counting words 181 7.3 Generating a cross-reference table 184 7.4 Generating sentences 189 7.5 A note on performance 198 7.6 Details 199 Chapter 8 Writing generic functions 202 8.1 What is a generic function? 202 8.2 Data-structure independence 208 8.3 Input and output iterators 217 8.4 Using iterators for flexibility 219 8.5 Details 221 Chapter 9 Defining new types 224 9.1 Student_info revisited 225 9.2 Class types 226 9.3 Protection 231 9.4 The Student_info class 236 9.5 Constructors 237 9.6 Using the Student_info class 241 9.7 Details 243 Chapter 10 Managing memory and low-level data structures 245 10.1 Pointers and arrays 246 10.2 String literals revisited 254 10.3 Initializing arrays of character pointers 256 10.4 Arguments to main 258 10.5 Reading and writing files 259 10.6 Three kinds of memory management 262 10.7 Details 266 Chapter 11 Defining abstract data types 269 11.1 The Vec class 270 11.2 Implementing the Vec class 271 11.3 Copy control 278 11.4 Dynamic Vecs 285 11.5 Flexible memory management 287 11.6 Details 294 Chapter 12 Making class objects act like values 296 12.1 A simple string class 297 12.2 Automatic conversions 299 12.3 Str operations 301 12.4 Some conversions are hazardous 310 12.5 Conversion operators 312 12.6 Conversions and memory management 314 12.7 Details 316 Chapter 13 Using inheritance and dynamic binding 319 13.1 Inheritance 320 13.2 Polymorphism and virtual functions 327 13.3 Using inheritance to solve our problem 333 13.4 A simple handle class 340 13.5 Using the handle class 346 13.6 Subtleties 348 13.7 Details 350 Chapter 14 Managing memory (almost) automatically 354 14.1 Handles that copy their objects 355 14.2 Reference-counted handles 363 14.3 Handles that let you decide when to share data 366 14.4 An improvement on controllable handles 369 14.5 Details 374 Chapter 15 Revisiting character pictures 375 15.1 Design 376 15.2 Implementation 384 15.3 Details 397 Chapter 16 Where do we go from here? 399 16.1 Use the abstractions you have 400 16.2 Learn more 403 Appendix A Language details 404 A.1 Declarations 405 A.2 Types 411 A.3 Expressions 418 A.4 Statements 421 Appendix B Library summary 424 B.1 Input-output 426 B.2 Containers and iterators 429 B.3 Algorithms 440 Whether You Are Eager To Get Started Writing Your First C++ Programs, Or You Are Already Using C++ And Seeking Deeper Understanding, The Authors' Unique Approach And Expertise Make Accelerated C++ An Indispensable Addition To Your Library.--jacket. Getting Started -- Working With Strings -- Looping And Counting -- Working With Batches Of Data -- Organizing Programs And Data -- Using Sequential Containers And Analyzing Strings -- Using Library Algorithms -- Using Associative Containers -- Writing Generic Functions -- Defining New Types -- Managing Memory And Low-level Data Structures -- Defining Abstract Data Types -- Making Class Objects Act Like Values -- Using Inheritance And Dynamic Binding -- Managing Memory (almost) Automatically -- Revisiting Character Pictures -- Where Do We Go From Here? Andrew Koenig, Barbara E. Moo. Includes Index.
دانلود کتاب Accelerated C++ : practical programming by example