Effective STL

50 Specific Ways to Improve Your Use of the Standard Template Library

Author: Scott Meyers

Publisher: Pearson Education

ISBN: 9780132702072

Category: Computers

Page: 279

View: 5578

“This is Effective C++ volume three – it’s really that good.” – Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee “There are very few books which all C++ programmers must have. Add Effective STL to that list.” – Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal C++’s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts – the things they almost always do or almost always avoid doing – to get the most out of the library. Other books describe what’s in the STL. Effective STL shows you how to use it. Each of the book’s 50 guidelines is backed by Meyers’ legendary analysis and incisive examples, so you’ll learn not only what to do, but also when to do it – and why. Highlights of Effective STL include: Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them. Like Meyers’ previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.

Effective Modern C++

42 Specific Ways to Improve Your Use of C++11 and C++14

Author: Scott Meyers

Publisher: "O'Reilly Media, Inc."

ISBN: 1491908432

Category: Computers

Page: 334

View: 4614

Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively—so that your software is correct, efficient, maintainable, and portable. That’s where this practical book comes in. It describes how to write truly great software using C++11 and C++14—i.e. using modern C++. Topics include: The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions The relationships among std::move, std::forward, rvalue references, and universal references Techniques for writing clear, correct, effective lambda expressions How std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency API How best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++ Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material. "After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now". -- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft

Generic Programming and the STL

Using and Extending the C++ Standard Template Library

Author: Matthew H. Austern

Publisher: Addison-Wesley Professional

ISBN: 9780201309560

Category: Computers

Page: 548

View: 2709

This book explains the C++ Standard Template Library (STL) in terms of generic programming--a way of designing and writing programs so that the programs can easily be reused.

C++ Gotchas

Avoiding Common Problems in Coding and Design

Author: Stephen C. Dewhurst

Publisher: Addison-Wesley Professional

ISBN: 9780321125187

Category: Computers

Page: 325

View: 9695

Corpus linguistics is a research approach to investigate the patterns of language use empirically, based on analysis of large collections of natural texts. While corpus-based analysis has had relatively little influence on theoretical linguistics, it has revolutionized the study of language variation and use: what speakers and writers actually do with the lexical and grammatical resources of a language. Corpus-based research employs the research methods of quantitative and qualitative social science to investigate language use patterns empirically. This four-volume collection is organized around linguistic research questions that can be investigated from a corpus perspective and includes amongst others studies of individual words, comparisons of supposedly synonymous words, studies of grammatical variation, and sociolinguistic studies of dialects, registers, styles, and world varieties. Corpus-based analysis has also proven to be important for the study of historical change.

API Design for C++

Author: Martin Reddy

Publisher: Elsevier

ISBN: 9780123850041

Category: Computers

Page: 472

View: 4465

API Design for C++ provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online. This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators. The only book that teaches the strategies of C++ API development, including design, versioning, documentation, testing, scripting, and extensibility. Extensive code examples illustrate each concept, with fully functional examples and working source code for experimentation available online. Covers various API styles and patterns with a focus on practical and efficient designs for large-scale long-term projects.

Efficient C++

Performance Programming Techniques

Author: Dov Bulka,David Mayhew

Publisher: Addison-Wesley Professional

ISBN: 9780201379501

Category: Computers

Page: 309

View: 8911

Far too many programmers and software designers consider efficient C++ to be an oxymoron. They regard C++ as inherently slow and inappropriate for performance-critical applications. Consequently, C++ has had little success penetrating domains such as networking, operating system kernels, device drivers, and others. "Efficient C++" explodes that myth. Written by two authors with first-hand experience wringing the last ounce of performance from commercial C++ applications, this book demonstrates the potential of C++ to produce highly efficient programs. The book reveals practical, everyday object-oriented design principles and C++ coding techniques that can yield large performance improvements. It points out common pitfalls in both design and code that generate hidden operating costs. This book focuses on combining C++'s power and flexibility with high performance and scalability, resulting in the best of both worlds. Specific topics include temporary objects, memory management, templates, inheritance, virtual functions, inlining, reference-counting, STL, and much more. With this book, you will have a valuable compendium of the best performance techniques at your fingertips. 0201379503B04062001

C++ Template Metaprogramming

Concepts, Tools, and Techniques from Boost and Beyond

Author: David Abrahams,Aleksey Gurtovoy

Publisher: Addison-Wesley Professional

ISBN: 9780321227256

Category: Computers

Page: 373

View: 3697

At long last, this much-awaited book delivers practical metaprogramming into the hands of the everyday C++ programmer.

Effective Enterprise Java

Author: Ted Neward

Publisher: Addison-Wesley Professional

ISBN: 9780321130006

Category: Computers

Page: 470

View: 6906

Seventy-five easily-digestible items that will help Java programmers master their craft and build better applications for the enterprise.

The C++ standard template library

Author: P. J. Plauger

Publisher: N.A

ISBN: 9780134376332

Category: Computers

Page: 485

View: 2268

Standard Template Libraries (STL) were created to provide C++ programmers with a suite of rusable programs, or lines of code, that could be used by everyone to increase programming productivity and quality. This book is the definitive reference on C++ programming using STL, as it was written by the team that created the library.

Modern Computational Finance

AAD and Parallel Simulations

Author: Antoine Savine

Publisher: Wiley

ISBN: 1119539455

Category: Mathematics

Page: 592

View: 5690

Arguably the strongest addition to numerical finance of the past decade, Algorithmic Adjoint Differentiation (AAD) is the technology implemented in modern financial software to produce thousands of accurate risk sensitivities, within seconds, on light hardware. AAD recently became a centerpiece of modern financial systems and a key skill for all quantitative analysts, developers, risk professionals or anyone involved with derivatives. It is increasingly taught in Masters and PhD programs in finance. Danske Bank's wide scale implementation of AAD in its production and regulatory systems won the In-House System of the Year 2015 Risk award. The Modern Computational Finance books, written by three of the very people who designed Danske Bank's systems, offer a unique insight into the modern implementation of financial models. The volumes combine financial modelling, mathematics and programming to resolve real life financial problems and produce effective derivatives software. This volume is a complete, self-contained learning reference for AAD, and its application in finance. AAD is explained in deep detail throughout chapters that gently lead readers from the theoretical foundations to the most delicate areas of an efficient implementation, such as memory management, parallel implementation and acceleration with expression templates. The book comes with professional source code in C++, including an efficient, up to date implementation of AAD and a generic parallel simulation library. Modern C++, high performance parallel programming and interfacing C++ with Excel are also covered. The book builds the code step-by-step, while the code illustrates the concepts and notions developed in the book.

C++ FAQs

Author: Marshall P. Cline,Greg Lomow,Mike Girou

Publisher: Addison-Wesley Professional

ISBN: 9780201309836

Category: Computers

Page: 587

View: 4650


C++17 STL Cookbook

Author: Jacek Galowicz

Publisher: Packt Publishing Ltd

ISBN: 1787121763

Category: Computers

Page: 532

View: 9069

Over 90 recipes that leverage the powerful features of the Standard Library in C++17 About This Book Learn the latest features of C++ and how to write better code by using the Standard Library (STL). Reduce the development time for your applications. Understand the scope and power of STL features to deal with real-world problems. Compose your own algorithms without forfeiting the simplicity and elegance of the STL way. Who This Book Is For This book is for intermediate-to-advanced C++ programmers who want to get the most out of the Standard Template Library of the newest version of C++: C++ 17. What You Will Learn Learn about the new core language features and the problems they were intended to solve Understand the inner workings and requirements of iterators by implementing them Explore algorithms, functional programming style, and lambda expressions Leverage the rich, portable, fast, and well-tested set of well-designed algorithms provided in the STL Work with strings the STL way instead of handcrafting C-style code Understand standard support classes for concurrency and synchronization, and how to put them to work Use the filesystem library addition available with the C++17 STL In Detail C++ has come a long way and is in use in every area of the industry. Fast, efficient, and flexible, it is used to solve many problems. The upcoming version of C++ will see programmers change the way they code. If you want to grasp the practical usefulness of the C++17 STL in order to write smarter, fully portable code, then this book is for you. Beginning with new language features, this book will help you understand the language's mechanics and library features, and offers insight into how they work. Unlike other books, ours takes an implementation-specific, problem-solution approach that will help you quickly overcome hurdles. You will learn the core STL concepts, such as containers, algorithms, utility classes, lambda expressions, iterators, and more, while working on practical real-world recipes. These recipes will help you get the most from the STL and show you how to program in a better way. By the end of the book, you will be up to date with the latest C++17 features and save time and effort while solving tasks elegantly using the STL. Style and approach This recipe-based guide will show you how to make the best use of C++ together with the STL to squeeze more out of the standard language

Using the C++ Standard Template Libraries

Author: Ivor Horton

Publisher: Apress

ISBN: 1484200047

Category: Computers

Page: 489

View: 3373

Using the C++ Standard Template Libraries is a contemporary treatment that teaches the generic programming capabilities that the C++ 14 Standard Library provides. In this book, author Ivor Horton explains what the class and function templates available with C++ 14 do, and how to use them in a practical context. You'll learn how to create containers, and how iterators are used with them to access, modify, and extend the data elements they contain. You'll also learn about stream iterators that can transfer data between containers and streams, including file streams. The function templates that define algorithms are explained in detail, and you'll learn how to pass function objects or lambda expressions to them to customize their behavior. Many working examples are included to demonstrate how to apply the algorithms with different types of containers. After reading this book, you will understand the scope and power of the templates that the C++ 14 Standard Library includes and how these can greatly reduce the coding and development time for many applications. You'll be able to combine the class and function templates to great effect in dealing with real-world problems. The templates in the Standard Library provide you as a C++ programmer with a comprehensive set of efficiently implemented generic programming tools that you can use for most types of application. How to use Standard Library templates with your C++ applications. Understand the different types of containers that are available and what they are used for. How to define your own class types to meet the requirements of use with containers. What iterators are, the characteristics of the various types of iterators, and how they allow algorithms to be applied to the data in different types of container. How you can define your own iterator types. What the templates that define algorithms do, and how you apply them to data stored in containers and arrays. How to access hardware clocks and use them for timing execution. How to use the templates available for compute-intensive numerical data processing. How to create and use pseudo-random number generators with distribution objects.

Designing Object-oriented C++ Applications Using the Booch Method

Author: Robert C. Martin

Publisher: N.A

ISBN: 9780132038379

Category: Computers

Page: 528

View: 3535

Taking a global orientation to software programming, this practical guide offers scores of tested methods for using the C++ programming language with object-orientated design techniques, for creating a variety of applications and solving a host of programming problems. The reference provides extensive coverage on complexity management; designing the physical model; preparing code for implementation; C++, OOP, and concurrent processes; and other key areas of Object-Orientated and C++ programming.

Using the STL

The C++ Standard Template Library

Author: Robert Robson

Publisher: Springer Science & Business Media

ISBN: 1461213126

Category: Computers

Page: 594

View: 3523

A comprehensive introduction and guide to the STL, pitched at the level of readers already familiar with C++. It presents a thorough overview of the capabilities of the STL, detailed discussions of the use of containers, descriptions of the algorithms and how they may be used, and how the STL may be extended. An appendix provides an alphabetical reference to the entire STL, making this an extremely useful hands-on text for programmers of C++ and students coming to the STL for the first time.

Modern C++ Design

Generic Programming and Design Patterns Applied

Author: Andrei Alexandrescu

Publisher: Addison-Wesley Professional

ISBN: 9780201704310

Category: Computers

Page: 323

View: 3586

This title documents a convergence of programming techniques - generic programming, template metaprogramming, object-oriented programming and design patterns. It describes the C++ techniques used in generic programming and implements a number of industrial strength components.

Exceptional C++

47 Engineering Puzzles, Programming Problems, and Solutions

Author: Herb Sutter

Publisher: Addison-Wesley Professional

ISBN: 9780201615623

Category: Computers

Page: 208

View: 5541

The puzzles and problems in Exceptional C++ not only entertain, they will help you hone your skills to become the sharpest C++ programmer you can be. Many of these problems are culled from the famous Guru of the Week feature of the Internet newsgroup comp.lang.c++, moderated, expanded and updated to conform to the official ISO/ANSI C++ Standard. Try your skills against the C++ masters and come away with the insight and experience to create more efficient, effective, robust, and portable C++ code.

Accelerated C++

Practical Programming by Example

Author: Andrew Koenig,Barbara E. Moo

Publisher: Addison-Wesley Professional

ISBN: 9780201703535

Category: Computers

Page: 336

View: 9427

Takes a practical approach to solving problems using C++. This book describes real problems and solutions, not just language features. It covers the language and standard library together.