如何学习编写惯用的 C++ 代码 [关闭]

2024-03-29

我最近强迫自己学习 C++,并且刚刚读完 Herbert Schildt 所著的《C++:完整参考》一书。我喜欢这本书,并且认为我或多或少了解了大局。但我注意到,当我尝试与其他人检查我使用我学到的材料编写的代码时,它们通常被认为是不惯用的,并被更安全、更容易的 STL 方法所取代(嗯,这本书没有这样做)不包括 STL 和 Boost 库)。

所以我想问:学习优秀 C++ 程序模式的好资源有哪些?我在哪里可以从“C++ 方式”学习基本模式来做事,而不仅仅是在 C++ 中重复 C 模式?

我对包含 STL 和 Boost 内容的源特别感兴趣。


您可能想查看权威 C++ 书籍指南和列表 https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

为了您的目的,我特别推荐:

  • C++ 编码标准 https://rads.stackoverflow.com/amzn/click/com/0321113586
  • 有效的STL https://rads.stackoverflow.com/amzn/click/com/0201924889
  • 超越 C++ 标准库:Boost 简介 https://rads.stackoverflow.com/amzn/click/com/0321133544
  • 代码完成 https://rads.stackoverflow.com/amzn/click/com/0735619670
  • 干净的代码 https://rads.stackoverflow.com/amzn/click/com/0132350882(Java 中的示例,但仍然有效。)

它们没有特定的顺序,您可能还想阅读它们之间的内容并编写一些代码。

(注:正如 @John Dibling 所指出的,Boost 书可能有点过时了,我自己没有这本书的经验)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何学习编写惯用的 C++ 代码 [关闭] 的相关文章

随机推荐

  • 如何使基于列表的编辑器模板正确绑定到 POST 操作?

    我有一个模型 ApplicantBranchList 在更大的模型中用作属性 如下所示 Display Name Where would you want to work public ApplicantBranchList Prefere
  • 向 tm 结构添加一些间隔

    我有一个结构tm 我需要添加一些固定间隔 以xx年 xx月 xx天给出 到tm struct 有没有标准函数可以做到这一点 我使用的编译器是 Windows XP 上的 MSVC 2005 有两个转换时间格式的函数 mktime 哪个转换s
  • 组合选择器时,空格与没有空格的含义相同吗?

    在 CSS 中 选择器与空格的结合意味着后裔 http www w3 org TR CSS21 selector html descendant selectors 但在另一个答案中如何在CSS选择器中组合类和ID https stacko
  • phpStorm 与 php-cgi 的问题

    所以我最近换成了 ubuntu 我试图再次设置我的环境 我设法安装了 LAMP 和 phpmyadmin 和 phpstorm 但是我无法做的是从 phpStorm 运行 php 脚本 当我尝试运行该程序时 页面给我一个 502 Bad g
  • 从另一个页面链接到特定选项卡

    我有一个包含 3 个选项卡的表单 div class tabs ul class tabset li a class active span Shirts span a li li a href span Jeans span a li l
  • 带验证器的 Perl 工作流模块

    我正在尝试让 perl 工作流程模块工作 http search cpan org jonasbn Workflow http search cpan org jonasbn Workflow 我设法弄清楚它如何与工作流程 操作 条件等一起
  • 如何在 C++ 中对匿名对象使用运算符=?

    我有一个带有重载运算符的类 IPAddress IPAddress operator IPAddress other if this other delete data this gt init other getVersion other
  • 属性“dataSource”是必需的 java 中的错误(Spring)

    我正在开发一个网络应用程序Java 春季 我的java文件是这样的 try JdbcTemplate jt new JdbcTemplate dataSource System out println Connection jt toStr
  • getline 如何像使用 fgets 一样限制输入量

    GNU手册 https www gnu org software libc manual html node Line Input html 这段话来自 GNU 手册 警告 如果输入数据有空字符 您将无法辨别 所以 除非您知道数据不能包含空
  • 有什么理由仍然对数据库表和列使用蛇形命名法?

    当我开始数据库设计时 出于某种原因 建议您始终对表和列使用蛇形命名法 my table name 我认为在 MySQL 中尤其如此 原因是在某些情况下会丢失或强制使用大写 快进到今天 我看到很多人使用 Pascal Case MyTable
  • Windows 或 Linux 上的 Objective C

    我想学习 Objective C 但没有 Mac 如何在 Windows 或 Linux 上编译 obj c 我更喜欢 Windows 但 Linux 也可以 GCC 有一个 Objective C 编译器 您可能还想调查GNUStep h
  • 在 Maven/Java 项目中创建资源

    如何创建资源 使其位于我的项目的资源文件夹中 下面 test txt 是我要创建的文件 但变量 url为空 因此我无法获取要创建的文件的路径 URL url HashArray class getResource test txt File
  • 如何在C++中提取数字的数字?

    基本上我想做一个小程序 当你输入一个数字 比如145 时 它会读取3位数字并打印最大的一位 int a b c 最大值 cout lt lt Enter a b and c cin gt gt a gt gt b gt gt c max a
  • 如何使 python 进程以正确的进程名称运行?

    我在 Python 中有一些长期进程和临时进程 虽然 shell 和 C 程序以自己的名称运行 但所有 Python 进程都以 python filename py 运行 这使得识别进程变得困难 如何使 python 进程在 Linux 中
  • Angular:将curl 转换为Angular $http POST 请求

    我有这条卷曲线 curl X POST H content type application json H AUTH TOKEN vLC4grMuKbtbamJL3L6x localhost 8080 v1 segments appkey
  • 使用 NHibernate 查询

    我是 NHibernate 的新手 我正在尝试学习如何查询我的数据 下面是配置 xml 仅显示食谱 我希望能够通过输入的关键字按菜谱标题查询菜谱 还有成分名称中的成分 例如 您可以输入 意大利面酒 这是我尝试过的 但给了我一个错误 hql
  • 如何使用 c 中最少的库跟踪鼠标输入

    我不知道在哪里可以找到这些信息 但我想知道如何使用 c 中最少的非标准库来获取鼠标输入 或任何隐藏输入 基本上 c 中是否有相当于鼠标 和其他输入 输入的 stdio 或者是否有一个最小且在多个平台上交叉兼容的库 只需能够将鼠标坐标打印到终
  • 将对象添加到 NSMutableArray 属性

    这是我的数据结构 group 1 n id name elements 1 n 我为具有所有属性的元素定义一个类 为组定义一个类 如下所示 interface Group NSObject NSInteger groupID NSStrin
  • 如何通过模拟选择器和/或 redux 存储来编写 Redux Saga 测试

    Context 我是编写 Redux Saga 测试的新手 并且一直在使用反应样板 https github com react boilerplate开发一个应用程序 该应用程序使用 Jest 进行测试 样板文件非常模块化且复杂 我什至不
  • 如何学习编写惯用的 C++ 代码 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我最近强迫自己学习 C 并且刚刚读完 Herbert Schildt 所著的 C 完整参考 一书 我喜