跳转到指定楼层
上一主题 下一主题
收起左侧

如何从0开始学C++

 
🔗
麻倉枼 2021-11-5 11:25:23 | 只看该作者
全局:
本帖最后由 麻倉枼 于 2021-11-4 22:30 编辑

既然有一点Java的知识背景,你可以花大量地时间攻略这些基础:
1. Pointer vs Reference
    - smart pointer

2. Stack vs Heap
   
3. new vs malloc vs calloc
4. delete vs free
   - 进阶: Memory allocation in general.

5. Data structure
    - vector vs. linked list vs. fixed array
        - iterator vs. pointer
        - different ways to traverse an array.

    - hashtable
         - ordered map vs. unordered map
         - ordered set vs unordered set
     - tree
         - binary tree vs. binary search tree.
         - complete binary tree vs. full binary tree, etc.

      - heap (不是memory那个)
        - heap vs binary tree
        - min heap
        - max heap
     
       - stack (不是memory那个)
          - stack vs. vector vs. queue vs. deque

6. Little Endian vs. Big Endian

7. Two complements

8. Bit Manipulation

9. inline functions

10. friend.

11. intializer list vs. Normal way to initalizing an instance of object.

12. Constructor, Destructor, Copy Constructor, Copy Destructor, Move Constructor, Default Constructor, 等等
       - Operator overloading

13. temporary variables

14.  optional argument

15.  static variable

16.  virtual functions
       - vTable
       - vPointer
       - Diamond Problem
       - Multi-inheritance
       - Virtual class

17. extern.

18. struct vs. class

19. default privacy level of a struct,
      default privacy level of a class.

20. const.

21. static_cast, dynamic_cast, reinterpret_cast, C-style cast.
      - When to use them?

22. bool, char, short, int, long, float, double
      铭记它们的size和上下限。

23. tuple vs. pair
24. string vs. string_view vs. const char*

25. structure binding

26. header files vs. source file
       - relationship between Linker and Object File
       - How an IDE compile a program.

27. Visual Studio:
      - Debug vs. Release mode
      - break point
      - How to debug
      - console
      - call stack





进阶:
23. parallel programming
      - thread
      - SIMD

24. generic programming
    - template

暂时想到这些

评分

参与人数 11大米 +12 收起 理由
Pro MacBook + 1 赞一个
火喵喵 + 1 很有用的信息!
meglory + 1 赞一个
paopaoyu + 1 很有用的信息!
yz978 + 1 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分

回复

使用道具 举报

🔗
小丑骑士 2021-11-5 11:26:02 | 只看该作者
全局:
先c++ primer,后effective c++,我记得都有中文版的,然后看你具体工作做啥了来做project了,游戏可以unreal,也可以跟着一些大学的os的课,或者distributed system课做
回复

使用道具 举报

全局:
不建议看c艹 primer
太多了,根本看不完,看完了也记不住,记住了黄花菜都凉了
看本入门书籍,学习基本知识,然后就以赛代练,边写边看effective c艹
c艹 primer plus和effective c艹我都看过,前者厚度至少是后者三倍吧,但后者的收获是前者三倍
回复

使用道具 举报

🔗
麻倉枼 2021-11-5 11:38:03 | 只看该作者
全局:
小丑骑士 发表于 2021-11-4 22:26
先c++ primer,后effective c++,我记得都有中文版的,然后看你具体工作做啥了来做project了,游戏可以unrea ...

那本书全是理论,例子各种眼花,不建议新手去看。我被这本书坑了很久,只适合天才去看。

我强烈推荐看

"C++ Pointers AND Dynamic Memory Managment",简单粗暴,看完至少懂了high level progrmaming的中低层建筑。
回复

使用道具 举报

全局:
哈哈 晕针😂
回复

使用道具 举报

🔗
小丑骑士 2021-11-5 11:59:26 | 只看该作者
全局:
麻倉枼 发表于 2021-11-4 23:38
那本书全是理论,例子各种眼花,不建议新手去看。我被这本书坑了很久,只适合天才去看。

我强烈推荐看 ...

看楼主有比较强的java经验,我感觉我的建议还行。确实不适合新手学,但是不得不说那书是最全的,相当于c++的百科全书了。
回复

使用道具 举报

全局:
不太建议上来就啃书,太多蛋疼的细节,还有很多概念是一般编程语言没有的,内存管理,指针,智能指针,rvalue,lvalue等等…
先syntax的话拿leetcode的easy写一下题,就熟悉基本数据结构和API了。
然后高级点概念的话结合实例学习比啃晦涩的书可能要不那么容易被劝退。
回复

使用道具 举报

全局:
另外,我看到很多人家里都有cpp primer那本书,基本都是新的,这说明啥
回复

使用道具 举报

🔗
pengzhao0524 2021-11-5 12:26:52 | 只看该作者
全局:
楼主你的工作主要是哪方面?我写过C++的图像和数据方面的开发。使用的相机、Lidar这类硬件都会提供自己的sdk和demo app,可以作为参考。你的领域估计也能找到类似的source code来看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表