C++ 学习宝藏网站分享

这篇具有很好参考价值的文章主要介绍了C++ 学习宝藏网站分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++ 学习宝藏网站分享

1. C++ 在线参考手册 Cppreference

https://zh.cppreference.com

C++ 学习宝藏网站分享

C++ 开发者必备的在线参考手册,是我最常访问的 C++ 网站之一。作为参考手册,不仅包含了语言本身的词法、语法特性,还包含了对 C++ 标准库的介绍:需要 include 哪个头文件、接口参数/返回值说明、参考实现、示例代码、各家编译器的支持情况等。

参考手册就好像字典,对于大多数的开发人员来说,不需要从头看到尾。点开几个链接,看看里面有哪些内容,大致留个印象,具体用到了某个部分再来查阅即可。

如果一开始看起来有些吃力,就直接放弃了这个 C++ 宝藏网站,实在是太可惜了。可以先看下《C++ Primer》之类的书籍巩固下基础,然后再对照着 cppreference 手册一起看。

场景 1

现代 C++ 有一种说法:“如果你想提高代码质量,那就用 C++ 标准库算法替换所有的循环。换句话说,如果你还在写 for 循环遍历,说明你对 STL 的算法知之甚少” 。C++ 标准库中有上百种算法,很难记住所有的算法及其调用方式。但当你打算写一个遍历 for 循环的时候,不妨先去 cppreference 上看一眼,多数情况下你能找到更简洁清晰、质量更高、速度更快的标准库算法。

例如,计算一个 vector 内所有数据之和:

// 手写循环遍历,不好
auto sz = v.size();
for(size_t i=0; i<sz; ++i)
  sum += v[i];

使用标准库算法,代码简洁,意图清晰,表达力强:

// 好
auto sum = std::accumulate(std::begin(v), std::end(v), 0.0);

场景 2

不知道如何测量程序的执行时间,但是又不想使用从百度搜出来的,不知道经历了几手转载于 CSDN 上的,编码风格很烂、漏洞百出,甚至混杂着 C/C++98 的,勉强能跑,亦或不能跑的代码。想了解最新的现代 C++ 如何使用 chrono 库来计算程序执行耗时,想知道如何正确使用各种 clocktime_pointduration_cast,比起 CSDN 和百度,我更相信 cppreference。

C++ 学习宝藏网站分享

抄作业,也要抄好学生的作业。

其他场景

如有类似下面的问题,cppreference 都可以快速给出准确、权威的解答。

  • 隐约记得 std::string 支持查找子串的方法,但记不清方法具体的使用参数、返回值,或者干脆不知道是否支持子串查找

  • std::vector 容器的 capacity()reserve() 的作用和用法

  • make_unique()make_shared() 哪一个是 C++11 引入的,哪一个是 C++14 引入的?

  • 项目只支持 C++14,能否使用 std::optional

2. C++ 核心指南(C++ Core Guidelines)

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

C++ 学习宝藏网站分享

C++ Core Guidelines 是由 C++ 之父 Bjarne Stroustrup 和 C++ 标准委员会主席 Hurb Sutter 领导并维护的开源项目,旨在帮助 C++开发者更高效地使用现代 C++。C++核心指南侧重于接口、资源管理、内存管理、并发等影响程序架构设计的高级主题,遵循这些规则可以最大程度地保证类型安全,避免资源泄露及常见的错误,让你的代码更快、更好。

如果在做 Code Review 的时候,直接贴一个上一个 C++ Core Guidelines 的链接,会节省很多力气,也更有说服力。

吴咏炜老师曾说过:“学习 C++,主要就是学习 C++ Core Guidelines 和 C++ 惯用法”。巧了,我的我之前分享的很多篇随笔也都是围绕着这两个话题:

  • C++ 核心指南
  • C++ 惯用法

3. 谷歌 C++编码规范(Google C++ Style Guide)

https://google.github.io/styleguide/cppguide.html

C++ 学习宝藏网站分享

不同于 C++ Core Guidelines 侧重 high-level 的规范,谷歌的这份 C++ Style Guide 包含了很多诸如格式、命名、注释、类、方法、头文件等相对 low-level 的详细编码规范,涉及开发过程的很多方面。每个条目都有优缺点的分析,以及最终的决定及理由。如果你的项目还没有一个编码规范,这是一份很好参考模板。

说句题外话:尽管使用 C++ 异常会带来很多好处,但 Google C++ 规范中不使用异常,因为 Google 现有的大量代码对异常的支持并不是很友好,全面转向异常需要花费大量的时间,且容易出现问题。但是正如规范中提到得那样,如果一切都是从头开始,可能会做出相反的决定。

4. Wandbox

https://wandbox.org

C++ 学习宝藏网站分享

界面简洁的在线编译器。支持多种语言、多种编译器、同一编译器的不同版本,不需要本地搭建环境。

更多时候可能只是遇到拿不准的问题,想写几行代码快速验证一下,但手边没有编译环境,这时 Wandbox 就可以发挥作用了。

5. Compiler Explorer

https://godbolt.org

C++ 学习宝藏网站分享

正如网站名字那样,编译器探索者。可以查看使用不同编译器、不同版本、不同编译选项编译产生的汇编代码,能够自动高亮关联到源码。然而这只是最基本的功能,更多强大的功能等着你自行探索。此外, Compiler Explorer 还提供丰富的模板,同时支持 vim 以及 VSCode 快捷键,也可以作为普通的在线 IDE 使用。

6. C++ Insights

https://cppinsights.io/

Compiler Explorer 的兄弟网站,能够显示 C++ 代码展开之后的样子。比如可以用它来探究直接初始化和拷贝初始化的区别(没区别),或者 range-for 是如何实现的:

C++ 学习宝藏网站分享

7. Quick Bench

https://quick-bench.com/

顾名思义,这个网站是用来比较两个代码片段性能的。

注意,代码片段级优化只应该作为最后的优化手段!详见:性能优化的一般策略及方法 一文


汽车行业 C++ 程序员,持续学习,不定期分享,欢迎关注,共同进步!

  • 微信公众号:好记性如烂笔头

  • 博客园:https://www.cnblogs.com/tengzijian文章来源地址https://www.toymoban.com/news/detail-786632.html

到了这里,关于C++ 学习宝藏网站分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电脑怎么既录屏又录人脸?分享2个宝藏方法,轻松学会

    在如今的数字时代,视频已成为人们表达和传递信息的最佳方式。无论是用于工作、教育、演示还是娱乐,录制高质量的视频已成为不可或缺的需求。然而,有些场景需要同时录制屏幕和人脸, 电脑怎么既录屏又录人脸? 本文将分享两个宝藏方法:使用PPT录屏和使用数据蛙

    2024年02月13日
    浏览(83)
  • 分享一个学习git的网站

    Learn Git Branching

    2024年01月22日
    浏览(30)
  • 54款宝藏级AIGC工具分享(claude,Midjourney,Stable Diffusion等)

    随着ChatGPT的一波又一波高潮,生成式AI逐渐进入人们视野,并开始大行其道,正如人们所说: AI用的好,天天下班早 ! 当然,有效的利用AI不但能下班早,还能在上班时间摸鱼,就如潘哥我,哈哈哈~~~ 牛X的AI神器可以不止ChatGPT一款,虽然潘哥对ChatGPT情有独钟。今天就给大家

    2024年02月13日
    浏览(43)
  • ChatGPT宝藏插件丨装上之后,上网、语音聊天、一键分享对话……简直让你爽到起飞!

    今天分享4个让你的 ChatGPT 功能更强大的浏览器插件,装上就能用,每一个都是精挑细选。 1. WebChatGPT 很多小伙伴在用 ChatGPT查阅信息时,发现它有一个致命的问题: ChatGPT的知识库全部截止到 2021年9月,正常情况下,2021年9月之后的信息它是无法获取的,哪怕 GPT4.0,也不能

    2024年02月05日
    浏览(59)
  • python+django电子资源类学习资料分享网站flask

    本设计是电子资源类的网站设计与实现,。系统前台实现了首页,分享资源,交流论坛,公告信息,个人中心,后台管理等功能。系统的后台实现了首页,个人中心,用户管理,分享资源管理,资源分类管理,交流论坛,系统管理等功能的添加、删除和修改。本文首先介绍了

    2024年04月15日
    浏览(46)
  • 深入理解高并发超卖一系列问题与解决方案(近7万字详解,跳槽涨薪必备宝藏珍藏级分享)

    能遇上高并发的,基本都是有点规模的公司,小公司基本都是CRUD。 想去一线城市跳槽,想去有高并发的公司,但是没有高并发经验,没有高并发的经验,就去不了高并发的公司,去不了这样的公司,就没有高并发经验,前狼后虎两头堵的困境,干就完了。 超卖问题是属于并

    2024年04月22日
    浏览(30)
  • 【C++初阶】前言——C++的发展简述及学习方法分享

     ========================================================================= 主页点击直达: 个人主页 我的小仓库: 代码仓库 C语言偷着笑: C语言专栏 数据结构挨打小记: 初阶数据结构专栏 Linux被操作记: Linux专栏 LeetCode刷题掉发记: LeetCode刷题 算法: 算法专栏  C++头疼记: C++专栏 ====

    2024年02月08日
    浏览(63)
  • 代码优雅升级,提升开发效率:挖掘Spring AOP配置的学习宝藏!

    1.1.1 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法 切入点表达式:要进行增强的方法的描述方式 对于切入点的描述,我们其实是有两中方式的,先来看下前面的例子 描述方式一:执行com.test.dao包下的BookDao接口中的无参数update方法 描述方式二:执行com.test

    2024年02月04日
    浏览(40)
  • PowerToys——免费、强大、高效的微软官方效率提升工具集,办公学习宝藏软件

    名人说:博观而约取,厚积而薄发。——宋·苏轼 Code_流苏(CSDN) (一个喜欢古诗词和编程的Coder😊)

    2023年04月19日
    浏览(59)
  • 系统分享|分享几个Windows系统镜像下载网站

    📣今日作品:如何关闭Microsoft start方法介绍 👦 创作者 :Jum朱 ⏰预计花费:10分钟 📖个人主页: Jum朱博客的个人主页 传送门: https://www.xitongzhijia.net/ 这个是老牌一直还在运营的网站,从高中时候就一直在使用的网站,现在也是一直在使用着,系统非常的全。上面的资源也

    2024年02月04日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包