- Table View
- List View
C++ Data Structures and Algorithms: Learn how to write efficient code to build scalable and robust applications in C++
by Wisnu AnggoroLearn how to build efficient, secure and robust code in C++ by using data structures and algorithms - the building blocks of C++Key FeaturesUse data structures such as arrays, stacks, trees, lists, and graphs with real-world examplesLearn the functional and reactive implementations of the traditional data structuresExplore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual mannerBook DescriptionC++ is a general-purpose programming language which has evolved over the years and is used to develop software for many different sectors. This book will be your companion as it takes you through implementing classic data structures and algorithms to help you get up and running as a confident C++ programmer.We begin with an introduction to C++ data structures and algorithms while also covering essential language constructs. Next, we will see how to store data using linked lists, arrays, stacks, and queues. Then, we will learn how to implement different sorting algorithms, such as quick sort and heap sort. Along with these, we will dive into searching algorithms such as linear search, binary search and more. Our next mission will be to attain high performance by implementing algorithms to string datatypes and implementing hash structures in algorithm design. We'll also analyze Brute Force algorithms, Greedy algorithms, and more.By the end of the book, you'll know how to build components that are easy to understand, debug, and use in different applications.What you will learnKnow how to use arrays and lists to get better results in complex scenariosBuild enhanced applications by using hashtables, dictionaries, and setsImplement searching algorithms such as linear search, binary search, jump search, exponential search, and moreHave a positive impact on the efficiency of applications with tree traversalExplore the design used in sorting algorithms like Heap sort, Quick sort, Merge sort and Radix sortImplement various common algorithms in string data typesFind out how to design an algorithm for a specific task using the common algorithm paradigmsWho this book is forThis book is for developers who would like to learn the Data Structures and Algorithms in C++. Basic C++ programming knowledge is expected.
C++ Essentials For Dummies
by John Paul MuellerThe quick and crystal-clear guide to C++ programming C++ Essentials For Dummies is your useful reference to the key concepts of C++, the popular general-purpose language utilized everywhere from building games to writing parts of operating systems. With minimal review and background material—and absolutely no fluff—this book gets straight to the essential topics you need to know to ramp up, brush up, or level up. Get a helpful intro to the basic concepts of coding in C++ Review what you already know or pick up essential new skills Create projects that run smoothly with the C++ language Keep this concise reference book handy for jogging your memory as you work Great for supplementing classroom learning, reviewing for a certification, or staying knowledgeable on the job, C++ Essentials For Dummies is a fantastic refresher guide that you can always turn to for answers.
C++ For Dummies
by Stephen R. DavisEnter the world of computer programming with this step-by-step guide to the C++ language! C++ is a great introduction to object-oriented programming, and this friendly guide covers everything you need to know and nothing you don't. You'll write your first program by the end of Chapter 1.C++ For Dummies, 6th Edition, helps you understand C++ programming from the ground up. It's full of examples to show you how things work, and it even explains "why", so you understand how the pieces fit together. And the bonus CD includes a special code editor, an update GNU compiler, and all source code from the book to save you time.Learn programming lingo and what terms like object-oriented, compiler, and executable mean, so you can write a program right awaySee how to bundle sections of your code into modules that can be reused in different programsWork with features of object-oriented programming such as classes, constructors, and destructorsDiscover how the concept of inheritance is the key to effective C++ programmingWork with assignment operators, stream I/O, and other more advanced concepts, once you've grasped the basicsYou'll discover ten ways to avoid adding bugs to your programs, what pointers are and how to use them, how to work with strings, and some advanced features new to C++. C++ For Dummies, 6th Edition gets you up and running with this popular object-oriented language.Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.
C++ Fundamentals: Hit the ground running with C++, the language that supports tech giants globally
by Francesco ZoffoliThis book is for professional developers who want to learn a new, powerful language; and students who are ready to enter into the industry. Software developers familiar with older C++ standards, who want to update their knowledge to the modern paradigms of C++11, C++14 and C++17, are also welcome. This book is aimed at anyone passionate about programming, and who is ready to grasp a powerful yet complex language.
C++ Game Development By Example: Learn to build games and graphics with SFML, OpenGL, and Vulkan using C++ programming
by Siddharth ShekarExplore modern game programming and rendering techniques to build games using C++ programming language and its popular libraries Key Features Learn how you can build basic 2D and complex 3D games with C++ Understand shadows, texturing, lighting, and rendering in 3D game development using OpenGL Uncover modern graphics programming techniques and GPU compute methods using the Vulkan API Book Description Although numerous languages are currently being used to develop games, C++ remains the standard for fabricating expert libraries and tool chains for game development. This book introduces you to the world of game development with C++. C++ Game Development By Example starts by touching upon the basic concepts of math, programming, and computer graphics and creating a simple side-scrolling action 2D game. You'll build a solid foundation by studying basic game concepts such as creating game loops, rendering 2D game scenes using SFML, 2D sprite creation and animation, and collision detection. The book will help you advance to creating a 3D physics puzzle game using modern OpenGL and the Bullet physics engine. You'll understand the graphics pipeline, which entails creating 3D objects using vertex and index buffers and rendering them to the scene using vertex and fragment shaders. Finally, you'll create a basic project using the Vulkan library that'll help you get to grips with creating swap chains, image views, render passes, and frame buffers for building high-performance graphics in your games. By the end of this book, you'll be ready with 3 compelling projects created with SFML, the Vulkan API, and OpenGL, and you'll be able take your game and graphics programming skills to the next level. What you will learn Understand shaders and how to write a basic vertex and fragment shader Build a Visual Studio project and add SFML to it Discover how to create sprite animations and a game character class Add sound effects and background music to your game Grasp how to integrate Vulkan into Visual Studio Create shaders and convert them to the SPIR-V binary format Who this book is for If you're a developer keen to learn game development with C++ or get up to date with game development, this book is for you. Some knowledge of C++ programming is assumed.
C++ Game Development Cookbook
by Druhin MukherjeeThis book is ideal for aspiring game developers who are proficient in C++ programming and are interested in developing games with C++. Some basic knowledge of game programming will be useful but is not necessary.
C++ Game Development Primer
by Bruce SutherlandC++ is the language behind most of today's computer games. This 96-page C++ Game Development Primer takes you through the accelerated process of writing games for otherwise experienced C++ programmers. After reading this book, you'll have the fundamental know-how to become a successful and profitable game applications developer in today's increasingly competitive indie game marketplace. For those looking for a quick introduction to C++ game development and who have good skills in C++, this will get you off to a fast start. C++ Game Development Primer is based on Learn C++ for Game Development by the same author, giving you the essentials to get started in game programming without the unnecessary introduction to C++. What you'll learn How to write C++ games using object-oriented programming techniques How to work with design patterns in C++ game development How to apply C++ to native game activities How to build an actual game project Who this book is for This book is for aspiring game developers with previous C++ programming experience who want to build game applications. Table of Contents 1. Managing Memory for Game Development 2. Useful Design Patterns for Game Development 3. Using File IO to Save and Load Games 4. Speeding Up Games with Concurrent Programming 5. Supporting Multiple Platforms in C++ 6. Wrapping Up with a Game Project Case Study
C++ High Performance: Boost and optimize the performance of your C++17 code
by Björn Andrist Viktor SehrWrite code that scales across CPU registers, multi-core, and machine clusters Key Features Explore concurrent programming in C++ Identify memory management problems Use SIMD and STL containers for performance improvement Book Description C++ is a highly portable language and can be used to write complex applications and performance-critical code. It has evolved over the last few years to become a modern and expressive language. This book will guide you through optimizing the performance of your C++ apps by allowing them to run faster and consume fewer resources on the device they're running on. The book begins by helping you to identify the bottlenecks in C++. It then moves on to measuring performance, and you'll see how this affects the way you write code. Next, you'll see the importance of data structure optimization and how it can be used efficiently. After that, you'll see which algorithm should be used to achieve faster execution, followed by how to use STL containers. Moving on, you'll learn how to improve memory management in C++. You'll get hands on experience making use of multiple cores to enable more efficient and faster execution. The book ends with a brief overview of utilizing the capabilities of your GPU by using Boost Compute and OpenCL. What you will learn Find out how to use exciting new tools that will help you improve your code Identify bottlenecks to optimize your code Develop applications that utilize GPU computation Reap the benefits of concurrent programming Write code that can protect against application errors using error handling Use STL containers and algorithms effciently Extend your toolbox with Boost containers Achieve effcient memory management by using custom memory allocatorsWho this book is for If you're a C++ developer looking to improve the speed of your code or simply wanting to take your skills up to the next level, then this book is perfect for you.
C++ High Performance: Master the art of optimizing the functioning of your C++ code, 2nd Edition
by Viktor Sehr Bjorn Andrist Ben GarneyA comprehensive guide to help aspiring and professional C++ developers elevate the performance of their apps by allowing them to run faster and consume fewer resourcesKey FeaturesUpdated to C++20 with completely revised code and more content on error handling, benchmarking, memory allocators, and concurrent programmingExplore the latest C++20 features including concepts, ranges, and coroutinesUtilize C++ constructs and techniques to carry out effective data structure optimization and memory managementBook DescriptionC++ High Performance, Second Edition guides you through optimizing the performance of your C++ apps. This allows them to run faster and consume fewer resources on the device they're running on without compromising the readability of your codebase. The book begins by introducing the C++ language and some of its modern concepts in brief. Once you are familiar with the fundamentals, you will be ready to measure, identify, and eradicate bottlenecks in your C++ codebase. By following this process, you will gradually improve your style of writing code. The book then explores data structure optimization, memory management, and how it can be used efficiently concerning CPU caches. After laying the foundation, the book trains you to leverage algorithms, ranges, and containers from the standard library to achieve faster execution, write readable code, and use customized iterators. It provides hands-on examples of C++ metaprogramming, coroutines, reflection to reduce boilerplate code, proxy objects to perform optimizations under the hood, concurrent programming, and lock-free data structures. The book concludes with an overview of parallel algorithms. By the end of this book, you will have the ability to use every tool as needed to boost the efficiency of your C++ projects.What you will learnWrite specialized data structures for performance-critical codeUse modern metaprogramming techniques to reduce runtime calculationsAchieve efficient memory management using custom memory allocatorsReduce boilerplate code using reflection techniquesReap the benefits of lock-free concurrent programmingGain insights into subtle optimizations used by standard library algorithmsCompose algorithms using ranges libraryDevelop the ability to apply metaprogramming aspects such as constexpr, constraints, and conceptsImplement lazy generators and asynchronous tasks using C++20 coroutinesWho this book is forIf you're a C++ developer looking to improve the efficiency of your code or just keen to upgrade your skills to the next level, this book is for you.
C++ In a Nutshell: A Desktop Quick Reference
by Ray LischnerTo-the-point, authoritative, no-nonsense solutions have always been a trademark of O'Reilly books. The In a Nutshell books have earned a solid reputation in the field as the well-thumbed references that sit beside the knowledgeable developer's keyboard. C++ in a Nutshell lives up to the In a Nutshell promise. C++ in a Nutshell is a lean, focused reference that offers practical examples for the most important, most often used, aspects of C++.C++ in a Nutshell packs an enormous amount of information on C++ (and the many libraries used with it) in an indispensable quick reference for those who live in a deadline-driven world and need the facts but not the frills.The book's language reference is organized first by topic, followed by an alphabetical reference to the language's keywords, complete with syntax summaries and pointers to the topic references. The library reference is organized by header file, and each library chapter and class declaration presents the classes and types in alphabetical order, for easy lookup. Cross-references link related methods, classes, and other key features. This is an ideal resource for students as well as professional programmers.When you're programming, you need answers to questions about language syntax or parameters required by library routines quickly. What, for example, is the C++ syntax to define an alias for a namespace? Just how do you create and use an iterator to work with the contents of a standard library container? C++ in a Nutshell is a concise desktop reference that answers these questions, putting the full power of this flexible, adaptable (but somewhat difficult to master) language at every C++ programmer's fingertips.
C++ Multithreading Cookbook
by Milos LjumovicThe book is an easy-to-follow guide for creating multi-threaded applications using C++. Each topic is thoroughly explained with multiple illustrations. Many algorithms, such as Dinning Philosophers Problem give you thorough explanations that will help you to understand and solve concurrent tasks. The book is intended for enterprise developers and programmers who wish to make use of C++ capabilities to learn the multithreaded approach. Knowledge of multithreading along with experience in C++ is an added advantage. However it is not a prerequisite.
C++ Pocket Reference: C++ Syntax and Fundamentals
by Kyle LoudonC++ is a complex language with many subtle facets. This is especially true when it comes to object-oriented and template programming. The C++ Pocket Reference is a memory aid for C++ programmers, enabling them to quickly look up usage and syntax for unfamiliar and infrequently used aspects of the language. The book's small size makes it easy to carry about, ensuring that it will always be at-hand when needed. Programmers will also appreciate the book's brevity; as much information as possible has been crammed into its small pages.In the C++ Pocket Reference, you will find:Information on C++ types and type conversionsSyntax for C++ statements and preprocessor directivesHelp declaring and defining classes, and managing inheritanceInformation on declarations, storage classes, arrays, pointers, strings, and expressionsRefreshers on key concepts of C++ such as namespaces and scopeMore!C++ Pocket Reference is useful to Java and C programmers making the transition to C++, or who find themselves occasionally programming in C++. The three languages are often confusingly similar. This book enables programmers familiar with C or Java to quickly come up to speed on how a particular construct or concept is implemented in C++.Together with its companion STL Pocket Reference, the C++ Pocket Reference forms one of the most concise, easily-carried, quick-references to the C++ language available.
C++ Primer
by Stanley B. Lippman Josée Lajoie Barbara E. MooFully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today’s best practices, the authors show how to use both the core language and its standard library to write efficient, readable, and powerful code. C++ Primer, Fifth Edition, introduces the C++ standard library from the outset, drawing on its common functions and facilities to help you write useful programs without first having to master every language detail. The book’s many examples have been revised to use the new language features and demonstrate how to make the best use of them. This book is a proven tutorial for those new to C++, an authoritative discussion of core C++ concepts and techniques, and a valuable resource for experienced programmers, especially those eager to see C++11 enhancements illuminated. Start Fast and Achieve More Learn how to use the new C++11 language features and the standard library to build robust programs quickly, and get comfortable with high-level programming Learn through examples that illuminate today’s best coding styles and program design techniques Understand the “rationale behind the rules”: why C++11 works as it does Use the extensive crossreferences to help you connect related concepts and insights Benefit from up-to-date learning aids and exercises that emphasize key points, help you to avoid pitfalls, promote good practices, and reinforce what you’ve learned
C++ Programming in Easy Steps
by Mike McgrathC++ Programming in Easy Steps instructs you how to program in the powerful C++ language, giving complete examples that illustrate each aspect.C++ Programming in Easy Steps begins by explaining how to download and install a free C++ compiler so you can quickly begin to create your own executable programs by copying the book's examples. It demonstrates all the C++ language basics before moving on to provide examples of Object Oriented Programming. The book concludes by demonstrating how you can use your acquired knowledge to create programs graphically in the free Microsoft Visual C++ Express Integrated Development Environment (IDE).C++ Programming in Easy Steps makes no assumption you have previous knowledge of any programming language so it's ideal for the newcomer to computer programming. It has an easy-to-follow style that will appeal to programmers moving from another programming language, and to the student who is studying C++ programming at school or college, and to those seeking a career in computing who need a fundamental understanding of object oriented programming.<P><P> Advisory: Bookshare has learned that this book offers only partial accessibility. We have kept it in the collection because it is useful for some of our members. To explore further access options with us, please contact us through the Book Quality link on the right sidebar. Benetech is actively working on projects to improve accessibility issues such as these.
C++ Programming: From Problem Analysis To Program Design
by D. S. MalikLearn how to program with C++ using today’s definitive choice for your first programming language experience -- C++ PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN, 8E. D.S. Malik’s time-tested, user-centered methodology incorporates a strong focus on problem-solving with full-code examples that vividly demonstrate the hows and whys of applying programming concepts and utilizing C++ to work through a problem. Thoroughly updated end-of-chapter exercises, more than 20 extensive new programming exercises, and numerous new examples drawn from Dr. Malik’s experience further strengthen the reader’s understanding of problem solving and program design in this new edition. This book highlights the most important features of C++ 14 Standard with timely discussions that ensure this edition equips you to succeed in your first programming experience and well beyond.
C++ Programming: From Problem Analysis to Program Design
by D. S. MalikNIMAC-sourced textbook <P><P>Learn how to program with C++ using today's definitive choice for your first programming language experience -- C++ PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN, 8E. D.S. Malik's time-tested, student-centered methodology incorporates a strong focus on problem-solving with full-code examples that vividly demonstrate the hows and whys of applying programming concepts and utilizing C++ to work through a problem. Thoroughly updated end-of-chapter exercises, more than 20 extensive new programming exercises, and numerous new examples drawn from Dr. Malik's experience further strengthen your understanding of problem solving and program design in this new edition. You review the important features of C++ 14 Standard with timely discussions that ensure this edition equips you to succeed in your CS1 course and beyond.
C++ Programs to Accompany Programming Logic and Design, Eighth Edition
by Jo Ann SmithAlso known as C++ PAL), the book is designed to provide students with an opportunity to write C++ programs as part of an Introductory Programming Logic course. This textbook assumes no programming language experience and provides the beginning programmer with a guide to writing structured programs and simple object-oriented programs using introductory elements of the popular C++ programming language.
C++ Quick Syntax Reference: A Pocket Guide To The Language, Apis And Library
by Mikael OlssonThe C++ Quick Syntax Reference is a condensed code and syntax reference to the C++ programming language. It presents the essential C++ syntax in a well-organized format that can be used as a handy reference. You won’t find any technical jargon, bloated samples, drawn out history lessons, or witty stories in this book. What you will find is a language reference that is concise, to the point and highly accessible. The book is packed with useful information and is a must-have for any C++ programmer. In the C++ Quick Syntax Reference, you will find: A concise reference to the C++ language syntax. Short, simple, and focused code examples. A well laid out table of contents and a comprehensive index allowing easy review. What you’ll learn How to create a C++ HelloWorld How to Compile and Run What are C++ Variables, Operators, Pointers and References What are Arrays, Strings, Conditionals, Loops and more How to do Functions How to work with Constructors, Inheritance, Overridings How to use Access Levels, Static, Enum, String and Union, and more What are Custom Conversions, Namespaces, Constants, and Preprocessor How to do Event Handling What are Type Conversions, Templates, Headers, and more Who this book is for This book is a quick, handy pocket syntax reference for experienced C++ programmers, and a concise, easily-digested introduction for other programmers new to C++.
C++ Reactive Programming: Design concurrent and asynchronous applications using the RxCpp library and Modern C++17
by Praseed Pai Peter AbrahamLearn how to implement the reactive programming paradigm with C++ and build asynchronous and concurrent applicationsKey Features Efficiently exploit concurrency and parallelism in your programs Use the Functional Reactive programming model to structure programs Understand reactive GUI programming to make your own applications using QtBook DescriptionReactive programming is an effective way to build highly responsive applications with an easy-to-maintain code base. This book covers the essential functional reactive concepts that will help you build highly concurrent, event-driven, and asynchronous applications in a simpler and less error-prone way.C++ Reactive Programming begins with a discussion on how event processing was undertaken by different programming systems earlier. After a brisk introduction to modern C++ (C++17), you’ll be taken through language-level concurrency and the lock-free programming model to set the stage for our foray into the Functional Programming model. Following this, you’ll be introduced to RxCpp and its programming model. You’ll be able to gain deep insights into the RxCpp library, which facilitates reactive programming. You’ll learn how to deal with reactive programming using Qt/C++ (for the desktop) and C++ microservices for the Web.By the end of the book, you will be well versed with advanced reactive programming concepts in modern C++ (C++17).What you will learnUnderstand language-level concurrency in C++Explore advanced C++ programming for the FRPUncover the RxCpp library and its programming modelMix the FP and OOP constructs in C++ 17 to write well-structured programsMaster reactive microservices in C++Create custom operators for RxCppLearn advanced stream processing and error handlingWho this book is forIf you’re a C++ developer interested in using reactive programming to build asynchronous and concurrent applications, you’ll find this book extremely useful. This book doesn’t assume any previous knowledge of reactive programming.
C++ Recipes: A Problem-Solution Approach
by Bruce SutherlandIn this handy reference, you'll find numbers, strings, dates, times, classes, exceptions, streams, flows, pointers and more. Also, you'll see various code samples, templates for C++ algorithms, parallel processing, multithreading and numerical processes. These have many applications including game development, big data analytics, financial engineering and analysis, enterprise applications and more. A wealth of STL templates on function objects, adapters, allocators, and extensions are also available. C++ Recipes: A Problem-Solution Approach is a handy code cookbook reference guide that cover the latest C++ 14 as well as some of the code templates available in the latest Standard Template Library (STL). This is a "must have", contemporary reference for your technical library. What you'll learn How to handle numbers, strings, text, dates and times, and data in general How to implement a variety of C++ algorithms How to handle and use classes, exceptions, streams and flows How to build parallel processing C++ templates How to code for pointers How to leverage the wealth of C++ templates found in the STL, including function objects, adapters, allocators and more How to extend the STL and more Who this book is for This book is for those with at least some experience with C++ and certainly experience with programming in general. Table of Contents 1. Beginning C++ 2. Modern C++ 3. Working with Text 4. Working with Numbers 5. Classes 6. Inheritance 7. The STL Containers 8. The STL Algorithms 9. Templates 10. Memory 11. Concurrency 12. Networking 13. Scripting 14. 3D Graphics Programming
C++ Software Design: Design Principles and Patterns for High-Quality Software
by Klaus IglbergerGood software design is essential for the success of your project, but designing software is hard to do. You need to have a deep understanding of the consequences of design decisions and a good overview of available design alternatives. With this book, experienced C++ developers will get a thorough, practical, and unparalleled overview of software design with this modern language.C++ trainer and consultant Klaus Iglberger explains how you can manage dependencies and abstractions, improve changeability and extensibility of software entities, and apply and implement modern design patterns to help you take advantage of today's possibilities. Software design is the most essential aspect of a software project because it impacts the software's most important properties: maintainability, changeability, and extensibility.Learn how to evaluate your code with respect to software designUnderstand what software design is, including design goals such as changeability and extensibilityExplore the advantages and disadvantages of each design approachLearn how design patterns help solve problems and express intentChoose the right form of a design pattern to get the most out of its advantages
C++ Software Interoperability for Windows Programmers: Connecting to C#, R, and Python Clients
by Adam GladstoneGet up-to-speed quickly and connect modern code written in C#, R, and Python to an existing codebase written in C++. This book for practitioners is about software interoperability in a Windows environment from C++ to languages such as C#, R, and Python. Using a series of example projects, the book demonstrates how to connect a simple C++ codebase packaged as a static or dynamic library to modern clients written in C#, R, and Python. The book shows you how to develop the in-between components that allow disparate languages to communicate. This book addresses a fundamental question in software design: given an existing C++ codebase, how does one go about connecting that codebase to clients written in C#, R, and Python? How is the C++ functionality exposed to these clients? One answer may be to rewrite the existing codebase in the target language. This is rarely, if ever, feasible and this book’s goal is to save you the pain and the high cost of throwing out valuable existing code by showing you how to make that older code function alongside and with the more modern languages that are commonly in use today. The knowledge you will gain from reading this book will help you broaden your architectural choices and take advantage of the growing amount of talent around newer languages.What You Will LearnBuild components that connect C++ to other languagesTranslate between the C++ type system and the type systems of C#, R, and PythonWrite a managed assembly targeting the .NET frameworkCreate C++ packages for use in R/StudioDevelop Python modules based on high-performance C++ codeOvercome the difficulties and pitfalls involved in cross-language developmentWho This Book Is ForSoftware developers who are looking for ways to extend existing systems written in C++ using modern languages. Readers should have some programming experience, particularly in C++. Readers should also be familiar with common development tools such as Visual Studio, R/Studio, Visual Studio Code, and CodeBlocks.
C++ Standard Library Quick Reference
by Marc Gregoire Peter WeertThis quick reference is a condensed reference guide to the essential data structures, algorithms, and functions provided by the C++ Standard Library. More specifically, this is a compact collection of essential classes and functions, used by C++ programmers on a daily basis. The C++ Standard Library Quick Reference features core classes for strings, I/O streams, and various generic containers, as well as a comprehensive set of algorithms to manipulate them. In recent years, the C++11 and C++14 standards have added even more efficient container classes, a new powerful regular expression library, and a portable multithreading library featuring threads, mutexes, condition variables, and atomic variables. Needless to say, it is hard to know and remember all the possibilities, details, and intricacies of this vast and growing library. This handy reference guide is therefore indispensable to any C++ programmer. It offers a condensed, well-structured summary of all essential aspects of the C++ Standard Library, including all aforementioned functionality. No page-long, repetitive examples or obscure, rarely used features. Instead, everything you need to know and watch out for in practice is outlined in a compact, to-the-point style, interspersed with well-chosen, clarifying examples. The book does not explain the C++ language or syntax, but is accessible to anyone with basic C++ knowledge. Even the most experienced C++ programmer though will learn a thing or two from it and find it a useful memory-aid. What you'll learn The essentials of the C++ Standard Library How to use containers to efficiently store and retrieve your data How to use algorithms to inspect and manipulate your data How lambda expressions allow for elegant use of algorithms What the standard string class provides and how to use it What functionality the library provides for file and stream-based I/O What smart pointers are and how to use them to prevent memory leaks How to write safe and efficient multi-threaded code using the C++11 threading libraries Who this book is for The book is targeted at all C++ programmers: irrespective of their proficiency with the language or the Standard Library, this book offers an indispensable reference and memory-aid. A secondary audience is developers who are new to C++, but not new to programming, and who want to learn more on the C++ Standard Library in a quick, condensed manner.
C++ System Programming Cookbook: Practical recipes for Linux system-level programming using the latest C++ features
by Onorato VaticoneA problem-solution-based guide to help you overcome hurdles effectively while working with kernel APIs, filesystems, networks, threads, and process communications Key Features Learn to apply the latest C++ features (from C++11, 14, 17, and 20) to facilitate systems programming Create robust and concurrent systems that make the most of the available hardware resources Delve into C++ inbuilt libraries and frameworks to design robust systems as per your business needs Book Description C++ is the preferred language for system programming due to its efficient low-level computation, data abstraction, and object-oriented features. System programming is about designing and writing computer programs that interact closely with the underlying operating system and allow computer hardware to interface with the programmer and the user. The C++ System Programming Cookbook will serve as a reference for developers who want to have ready-to-use solutions for the essential aspects of system programming using the latest C++ standards wherever possible. This C++ book starts out by giving you an overview of system programming and refreshing your C++ knowledge. Moving ahead, you will learn how to deal with threads and processes, before going on to discover recipes for how to manage memory. The concluding chapters will then help you understand how processes communicate and how to interact with the console (console I/O). Finally, you will learn how to deal with time interfaces, signals, and CPU scheduling. By the end of the book, you will become adept at developing robust systems applications using C++. What you will learn Get up to speed with the fundamentals including makefile, man pages, compilation, and linking and debugging Understand how to deal with time interfaces, signals, and CPU scheduling Develop your knowledge of memory management Use processes and threads for advanced synchronizations (mutexes and condition variables) Understand interprocess communications (IPC): pipes, FIFOs, message queues, shared memory, and TCP and UDP Discover how to interact with the console (console I/O) Who this book is for This book is for C++ developers who want to gain practical knowledge of systems programming. Though no experience of Linux system programming is assumed, intermediate knowledge of C++ is necessary.
C++ Template Metaprogramming in Practice: A Deep Learning Framework
by Li WeiUsing the implementation of a deep learning framework as an example, C++ Template Metaprogramming in Practice: A Deep Learning Framework explains the application of metaprogramming in a relatively large project and emphasizes ways to optimize systems performance. The book is suitable for developers with a basic knowledge of C++. Developers familiar with mainstream deep learning frameworks can also refer to this book to compare the differences between the deep learning framework implemented with metaprogramming and compile-time computing with deep learning frameworks using object-oriented methods. Consisting of eight chapters, the book starts with two chapters discussing basic techniques of metaprogramming and compile-time computing. The rest of the book’s chapters focus on the practical application of metaprogramming in a deep learning framework. It examines rich types and systems, expression templates, and writing complex meta-functions, as well as such topics as: Heterogeneous dictionaries and policy templates An introduction to deep learning Type system and basic data types Operations and expression templates Basic layers Composite and recurrent layers Evaluation and its optimization Metaprogramming can construct flexible and efficient code. For C++ developers who are familiar with object-oriented programming, the main difficulty in learning and mastering C++ metaprogramming is establishing the thinking mode of functional programming. The meta-programming approach involved at compile time is functional, which means that the intermediate results of the construction cannot be changed, and the impact may be greater than expected. This book enables C++ programmers to develop a functional mindset and metaprogramming skills. The book also discusses the development cost and use cost of metaprogramming and provides workarounds for minimizing these costs.