CPlusPlusThings

2025-12-10 0 103
  • C++ 那些事
    • 重磅项目
    • 关于作者
    • 项目运行
      • 方式1: vscode + bazel
      • 方式2: docker
      • 方式3: g++
    • 视频学习本项目
    • 飞书知识库
    • 基础进阶
    • 实战系列
      • 10 日狂练
      • 重点实战练习
    • C++2.0 新特性
      • 概况
      • C++11 新特性
      • C++14/17/20
    • 设计模式
    • STL 源码剖析
    • 并发编程
      • C++ Concurrency in Action
      • 多线程与多进程
        • Threading In C++
    • C++ 惯用
      • 你最喜欢的 c++ 编程风格惯用法是什么?
    • 学习课程
      • 极客时间《现代 C++ 实战 30 讲》
    • 工具篇
      • 容器快捷输出工具
      • 像 Python 一样简单输出(Jupyter Notebook)
      • 观察编译过程变化
      • C++ 的 Debug 工具 dbg-macro
      • 在 Linux 上的 Debug 工具 rr – 拥有回到过去的能力
    • 拓展部分
      • 一些问题
    • 贡献者

C++ 那些事

感谢各位对《C++ 那些事》的支持,现将内容也同步至B站,以视频的方式展示,可以打开网站直接阅读~欢迎大家 star、转发、PR。

在线个人博客:光城的实验室

在线学习网站:C++那些事

  • 中文名:C++ 那些事
  • 英文名:Stories About C Plus Plus

这是一个适合初学者从入门到进阶的仓库,解决了面试者与学习者想要深入 C++ 及如何入坑 C++ 的问题。除此之外,本仓库拓展了更加深入的源码分析,多线程并发等的知识,是一个比较全面的 C++ 学习从入门到进阶提升的仓库。

重磅项目

推出一系列重磅项目,带大家实战学习C++,配合本开源项目学习,成长飞快!

直通点:戳这里

关于作者

公众号已开放两大入口,分别是专辑与菜单,可以直接在微信公众号上阅读《C++ 那些事》内容,配上该仓库的代码,将会非常的爽,建议大家关注一波。

个人公众号:guangcity

或者扫下面的二维码,欢迎大家反馈及 C++ 交流,本人在微信创建了 C++ 那些事交流群,优质的 C++ 资源交流区,期待大家关注上面公众号,点击公众号右下角->联系我,拉你入群。


关注我

如果觉得不错,关注我吧~


星球

微信公众号

项目运行

方式1: vscode + bazel

方式2: docker

新推出免开发环境,docker环境,大家可以pull下面镜像:

docker pull xingfranics/cplusplusthings:latest

方式3: g++

视频学习本项目

第一期:Step By Step上手编译本项目

第二期:免开发环境docker

第三期:手把手共读HashTable,彻底搞懂C++ STL

第四期:手把手共读STL之enable_shared_from_this

第五期:手把手共读STL之线程,从C++11 thread到C++20 jthread

第六期:手把手共读STL之共读condition_variable、condition_variable_any

第七期:手把手共读STL之Mutex

第八期:手把手共读STL之RAII Lock

飞书知识库

互联网大厂面试实录

拿下offer之必备面经

基础进阶

  • const 那些事
  • static 那些事
  • this 那些事
  • inline 那些事
  • sizeof 那些事
  • 函数指针那些事
  • 纯虚函数和抽象类那些事
  • vptr_vtable 那些事
  • virtual 那些事
  • volatile 那些事
  • assert 那些事
  • 位域那些事
  • extern 那些事
  • struct 那些事
  • structclass 那些事
  • union 那些事
  • c 实现 c++ 多态那些事
  • explicit 那些事
  • friend 那些事
  • using 那些事
  • :: 那些事
  • enum 那些事
  • decltype 那些事
  • 引用与指针那些事
  • 宏那些事

实战系列

10 日狂练

  • day1-基本语法

  • day2-递归、结构体、枚举、静态变量等

  • day3-函数1

  • day4-函数2

  • day5-继承多态

  • day6-虚函数与抽象类

  • day7-运算符重载

  • day8-模版与STL

  • day9-异常

  • day10-文件与流

重点实战练习

  • 中括号重载.cpp

  • 时钟++运算符重载.cpp

  • 运算符重载之强制转换.cpp

  • 重载圆括号的时钟.cpp

  • 函数模板.cpp

  • 动态数组.cpp

  • 字典插入与查找.cpp

  • 异常捕获.cpp

  • 类模板之栈.cpp

  • 类模板特化之数组.cpp

  • 继承与封装.cpp

  • 读写文件综合题.cpp

  • 输入输出运算符重载.cpp

  • 输入输出重载.cpp

  • 输出格式.cpp

C++2.0 新特性

概况

C++2.0 是一个简称,意为「现代 C++」,包括 C++11/14/17/20。

C++11 新特性

  • Variadic Templates

  • Spaces in Template Expressions

    vector<list<int> > //ok in each C++ version
    vector<list<int>> // before c++ 11 error error: ‘>>’ should be ‘> >’ within a nested template argument list,c++11后可以正常通过
  • nullptr and nullptr_t

  • Automatic Type Deduction with auto

  • Uniform Initialization

  • initializer_list

  • explicit for ctors taking more than one argument

  • range-based for statement

    for(decl:col) {
        statement
    }
  • =default,=delete

    如果你自行定义了一个 ctor, 那么编译器就不会给你一个 default ctor
    如果强制加上 =default, 就可以重新获得并使用 default ctor.

  • Alias(化名) Template (template typedef)

    • alias.cpp
    • template_template.cpp
  • template template parameter

  • type alias

  • noexcept

  • override

  • final

  • decltype

  • lambda

  • Rvalue reference

  • move aware class

  • 容器-结构与分类

    • (1) 序列式容器包括:array(C++2.0 新引入),vector,deque,list,forward_list(C++2.0 新引入)
    • (2) 关联式容器包括:set/multiset,map/multimap
    • (3) 无序容器(C++2.0 新引入,更换原先 hash_xxxunordered_xxx)包括:unordered_map/unordered_multimap,unordered_set/unordered_multiset
  • Hash Function

  • tuple

    学习资料:https://www.*b*ilib*ili.com/video/av51863195?from=search&seid=3610634846288253061

C++14/17/20

待更新…

设计模式

  • 单例模式
  • 生产消费者模式

STL 源码剖析

STL 源码剖析:gcc 4.9.1

  • array
  • deque
  • queue and stack
  • list
  • vector
  • typename
  • traits
  • iterator
  • 谈谈 STL 设计之 EBO 优化
  • rb_tree
  • set and multiset
  • map and multimap
  • hashtable
  • myhashtable
  • unordered_map

并发编程

C++ Concurrency in Action

  • 第一章
  • 第二章

学习资料:https://downdemo.gi**tbo*ok.io/cpp-concurrency-in-action-2ed/

多线程与多进程

Threading In C++
  • 介绍
  • 创建线程的五种类型
  • Join 与 Detachs
  • mutex in C++ Threading

学习自:

https://www.y*outub**e.com/watch?v=eZ8yKZo-PGw&list=PLk6CEY9XxSIAeK-EAh3hB4fgNvYkYmghp&index=4

C++ 惯用法

你最喜欢的 c++ 编程风格惯用法是什么?
  • 1.类初始化列表
  • 2.枚举类替换命名空间
  • 3.RAII (资源获取即初始化)
  • 4.copy and swap
  • 5.pImpl (指针指向具体实现)

学习课程

极客时间《现代 C++ 实战 30 讲》

  • 堆、栈、RAII:C++ 里该如何管理资源?
    • RAII
  • 自己动手,实现 C++ 的智能指针
    • auto_ptr、scope_ptr
    • unique_ptr
    • shared_ptr
  • 右值和移动究竟解决了什么问题?
    • 左值与右值
    • 延长声明周期
    • 引用折叠
    • 完美转发
    • 不要返回本地变量的引用
  • 容器 1
  • 容器 2
  • 异常
  • 字面量、静态断言和成员函数说明符
  • 是不是应该返回对象?
  • 编译期多态:泛型编程和模板入门
  • 译期能做些什么?一个完整的计算世界
  • SFINAE:不是错误的替换失败是怎么回事?
  • constexpr:一个常态的世界
  • 函数对象和 lambda:进入函数式编程
  • 内存模型和 atomic:理解并发的复杂性

工具篇

容器快捷输出工具

对吴老师的代码进行了修改,点击此处直通代码

输入:

map<int, int> mp{
            {1, 1},
            {2, 4},
            {3, 9}};
    cout << mp << endl;

输出结果显示:

{ 1 => 1, 2 => 4, 3 => 9 }

像 Python 一样简单输出(Jupyter Notebook)

  • 像 Python 一样玩 C/C++

观察编译过程变化

  • https://*cp**pinsights.io

C++ 的 Debug 工具 dbg-macro

  • C++ 的 Debug 工具 dbg-macro

在 Linux 上的 Debug 工具 rr – 拥有回到过去的能力

  • 用 rr 来进行 debug

拓展部分

一些问题

  • C++ 中如何将 string 类型转换为 int 类型?

贡献者

贡献人 地址
光城 https://*github.*co*m/Light-City
ChungZH https://g**ithub.c*om/ChungZH
xliu79 https://**github.*com/xliu79

下载源码

通过命令行克隆项目:

git clone https://github.com/Light-City/CPlusPlusThings.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 CPlusPlusThings https://www.zuozi.net/33614.html

ImHex
上一篇: ImHex
carbon lang
下一篇: carbon lang
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务