C++
A Tour of C++ (2/e) 豆瓣
作者: Bjarne Stroustrup Addison Wesley 2018 - 6
In A Tour of C++ (2/e), Bjarne Stroustrup, the creator of C++, describes what constitutes modern C++. This concise, self-contained guide covers most major language features and the major standard-library components―not, of course, in great depth, but to a level that gives programmers a meaningful overview of the language, some key examples, and practical help in getting started.
Stroustrup presents the C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++.
This guide does not aim to teach you how to program (for that, see Stroustrup’s Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you’ll need for C++ mastery (for that, see Stroustrup’s The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you can’t find a shorter or simpler introduction than this tour provides.
C++ Concurrency in Action 豆瓣
作者: Mr Anthony Williams Manning Publications 2017
C++ 11 delivered strong support for multithreaded applications, and the subsequent C++14 and 17 updates have built on this baseline. C++ has better options for concurrency than ever before, which means it's an incredibly powerful option for multicore and parallel applications.
ZeroMQ 豆瓣
作者: Pieter Hintjens O'Reilly Media 2013 - 3
Dive into ØMQ (aka ZeroMQ), the smart socket library that gives you fast, easy, message-based concurrency for your applications. With this quick-paced guide, you’ll learn hands-on how to use this scalable, lightweight, and highly flexible networking tool for exchanging messages among clusters, the cloud, and other multi-system environments.
ØMQ maintainer Pieter Hintjens takes you on a tour of real-world applications, using extended examples in C to help you work with ØMQ’s API, sockets, and patterns. Learn how to use specific ØMQ programming techniques, build multithreaded applications, and create your own messaging architectures. You’ll discover how ØMQ works with several programming languages and most operating systems—with little or no cost.
Learn ØMQ’s main patterns: request-reply, publish-subscribe, and pipeline
Work with ØMQ sockets and patterns by building several small applications
Explore advanced uses of ØMQ’s request-reply pattern through working examples
Build reliable request-reply patterns that keep working when code or hardware fails
Extend ØMQ’s core pub-sub patterns for performance, reliability, state distribution, and monitoring
Learn techniques for building a distributed architecture with ØMQ
Discover what’s required to build a general-purpose framework for distributed applications
Competitive Programming 3 豆瓣
Competitive Programming
作者: Steven Halim lulu 2013 - 5
This is the third edition of Competitive Programming book.
This is the A5 paperback version. This is the intended version for typical audience, i.e. young programmers of age 15-25. If you need a larger 8.25 * 10.75 inch version (about the size of A4, or 2 x A5), please go to: http://www.lulu.com/shop/steven-halim/competitive-programming-3-hardcover/hardcover/product-21031840.html
A much more detailed information about this book is available at: https://cpbook.net
2018年1月3日 在读
开本很赞(字小且边距窄), 每个算法都有C++代码(配了comment), 很适合配合LeetCode刷题, 前提是同时复习CLRS.
C++ Algorithms ICPC 计算机科学 编程
From Mathematics to Generic Programming 豆瓣
作者: Alexander A. Stepanov / Daniel E. Rose Addison-Wesley Professional 2011 - 9
In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful.
If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem.
As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming–insight that will prove invaluable no matter what programming languages and paradigms you use.
You will learn about
How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency
Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete
A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it
Powerful mathematical approaches to abstraction
How abstract algebra provides the idea at the heart of generic programming
Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures
Surprising subtleties of simple programming tasks and what you can learn from them
How practical implementations can exploit theoretical knowledge
Game Programming Patterns 豆瓣
作者: Robert Nystrom Genever Benning 2014 - 11
The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exact problem. Based on years of experience in shipped AAA titles, this book collects proven patterns to untangle and optimize your game, organized as independent recipes so you can pick just the patterns you need.
You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
Inside the C++ Object Model 豆瓣 Goodreads
Inside the C++ Object Model
作者: [美] Stanley B·Lippman Addison-Wesley Professional 1996 - 5
Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance, and "the virtuals"--virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas in which they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects your programs. Highlights *Explores the program behavior implicit in the C++ Object Model's support of object-oriented programming. *Explains the basic implementation of the object-oriented features and the trade offs implicit in those features. *Examines the impact on performance in terms of program transformation.* Provides abundant program examples, diagrams, and performance measurements to relate object-oriented concepts to the underlying object model. If you are a C++ programmer who desires a fuller understanding of what is going on "under the hood," then Inside the C++ Object Model is for you! Get a value-added service! Try out all the examples from this book at www.codesaw.com. CodeSaw is a free online learning tool that allows you to experiment with live code from your book right in your browser. 0201834545B11102003
Effective C++ 豆瓣 谷歌图书 Goodreads
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
9.7 (7 个评分) 作者: [美国] Scott Meyers Addison-Wesley Professional 2005 - 5
“Every C++ professional needs a copy of Effective C++ . It is an absolute must-read for anyone thinking of doing serious C++ development. If you’ve never read Effective C++ and you think you know everything about C++, think again.”
— Steve Schirripa, Software Engineer, Google “C++ and the C++ community have grown up in the last fifteen years, and the third edition of Effective C++ reflects this. The clear and precise style of the book is evidence of Scott’s deep insight and distinctive ability to impart knowledge.”
— Gerhard Kreuzer, Research and Development Engineer, Siemens AG The first two editions of Effective C++ were embraced by hundreds of thousands of programmers worldwide. The reason is clear: Scott Meyers’ practical approach to C++ describes the rules of thumb used by the experts — the things they almost always do or almost always avoid doing — to produce clear, correct, efficient code. The book is organized around 55 specific guidelines, each of which describes a way to write better C++. Each is backed by concrete examples. For this third edition, more than half the content is new, including added chapters on managing resources and using templates. Topics from the second edition have been extensively revised to reflect modern design considerations, including exceptions, design patterns, and multithreading. Important features of Effective C++ include: Expert guidance on the design of effective classes, functions, templates, and inheritance hierarchies. Applications of new “TR1” standard library functionality, along with comparisons to existing standard library components. Insights into differences between C++ and other languages (e.g., Java, C#, C) that help developers from those languages assimilate “the C++ way” of doing things.
C++ Primer 豆瓣
作者: Stanley B. Lippman / Josée Lajoie Addison Wesley 2012 - 8
Bestselling Programming Tutorial and Reference Completely Rewritten for the New C++11 Standard
Now fully 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 code that is more efficient, readable, and powerful.
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. Examples take advantage of the library to explain language features and demonstrate how to make the best use of them. A proven tutorial for those new to C++, the authors’ authoritative discussion of core C++ concepts and techniques also make the book 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 C++11 Standard Library and new language features to quickly build robust programs, 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 cross-references 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
Access the source code for the extended examples as it becomes available at informit.com/title/0321714113.
2017年8月6日 在读
没C++之父的那本好
C++ 编程
Linux多线程服务端编程 豆瓣 Goodreads
作者: 陈硕 电子工业出版社 2013 - 1
本书主要讲述采用现代C++ 在x86-64 Linux 上编写多线程TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。这是在Linux 下以native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。
本书的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于公司内网环境的分布式服务统。