V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangchen2011
V2EX  ›  C

求推荐 C++好的学习资源,博客、视频、项目均可

  •  
  •   xiangchen2011 · 2018-08-04 10:10:06 +08:00 · 6328 次点击
    这是一个创建于 2336 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究 C++,觉得还是应该认真学习下,提升自己的代码编写水平

    32 条回复    2018-08-05 23:48:40 +08:00
    tomfs
        1
    tomfs  
       2018-08-04 10:20:53 +08:00 via iPhone
    github 找自己兴趣相同的代码动手撸
    tomfs
        2
    tomfs  
       2018-08-04 10:21:46 +08:00 via iPhone
    去年注释加笔记了个框架的代码,自我提升感觉很明显,推荐楼主。
    Wicked
        3
    Wicked  
       2018-08-04 10:27:57 +08:00 via iPhone
    看 C++程序语言,教父写的那本
    看 Effective C++,两本,Meyer 写的
    看 C++对象模型
    上面的依次往下,由浅入深,根据你自己所在阶段选择
    Wicked
        4
    Wicked  
       2018-08-04 10:35:59 +08:00 via iPhone
    之前看过还有一本不错的,好像叫 C++并发编程还是啥来着,里面有讲 C++11 的同步机制和共享内存模型,写多线程的话值得一看
    xuyuheng0905
        5
    xuyuheng0905  
       2018-08-04 11:23:44 +08:00
    @Wicked C++ Concurrency in Action. Manning.
    smallseven
        6
    smallseven  
       2018-08-04 11:32:08 +08:00
    个人觉得学习 C++,先从语法,到逻辑,再到编译,再到优化,慢慢的深入。C++说到底只是工具,多学多用就会熟练,精通的话不敢讲,起码会得心应手一点。其实我们更需要的是一些基础知识和编程思想。多思考,多练,书的话就找经典的一两本就行,推荐 C++ 11,C++性能优化指南。总之图精不图多,还有就是要动手。
    wzxlovesy
        7
    wzxlovesy  
       2018-08-04 11:32:31 +08:00 via Android
    C++ programming language 4th
    Effective modern c++
    Design patterns in modern c++
    C++ 11 工程实践与代码优化(国人写的,名字记不清了,但差不多是这个)

    一些稍早的书:
    C++沉思录
    Effective c++ / More effective c++
    C 和 C++代码精粹
    lance6716
        8
    lance6716  
       2018-08-04 11:55:13 +08:00 via Android
    哈哈正好昨天我们论坛有个劝退贴

    你确认你入门了吗?看这个程序:
    class Bar {
    public:
    Bar() {
    if (rand() % 2 == 1) {
    throw "Wow! I am an error!";
    }
    }
    void print() {
    printf("Hello world!\n");
    }
    };

    void foo(Bar *a, Bar *b) {
    a->print();
    b->print();
    delete a;
    delete b;
    }

    int main() {
    foo(new Bar(), new Bar());
    return 0;
    }


    上述程序有没有内存泄漏的风险?
    Wicked
        9
    Wicked  
       2018-08-04 12:07:10 +08:00 via iPhone
    @xuyuheng0905 对,就是这本,memory order 那一块写得很清楚,作者好像也参与了这部分的标准制定
    zmxnv123
        10
    zmxnv123  
       2018-08-04 12:39:53 +08:00 via Android
    头像是 baston 吗?
    zmxnv123
        11
    zmxnv123  
       2018-08-04 12:40:32 +08:00 via Android
    额 不是 当我没问 @zmxnv123
    HimmelTan
        12
    HimmelTan  
       2018-08-04 14:10:52 +08:00 via iPhone
    c++ primer 不推荐吗?我最近看的是这本,初学者,有 c 和 java 的一点点基础。
    xiangchen2011
        13
    xiangchen2011  
    OP
       2018-08-04 14:14:54 +08:00
    太厚的书感觉就是劝退。。。。。。而且网上很少火的 C++项目,接触到的很多都是比较高级的东西,从基础到高级感觉缺乏一个有效的过度
    xiangchen2011
        14
    xiangchen2011  
    OP
       2018-08-04 14:16:31 +08:00
    然而看顶会的 paper,大多还是因为 C++的效率高作为实现语言,所以要想向一流看齐,这还是一个必须过得坎
    xiangchen2011
        15
    xiangchen2011  
    OP
       2018-08-04 17:27:05 +08:00
    嗯。。。。。。怎么没人回复了呢。。。。。。嗯。。。。
    AngelCriss
        16
    AngelCriss  
       2018-08-04 17:39:42 +08:00 via Android
    @xiangchen2011 很少火的项目。

    大概是因为用 cpp 的人都喜欢自己造轮子吧。


    接触到的都是比较高级的东西?

    这可能还是和前面有关,比如标准库没有网络库,要想用网络库就得自己写,这就涉及到了系统编程。这样就会发现会了 cpp 语法做不了啥事,导致看到 cpp 的轮子觉得高级?

    最后,回到正题,purecpp.org 还算是个 cpp 社区,楼主可以看看。
    项目的话,purecpp 也有些项目 github.com/topcpporg
    xiangchen2011
        17
    xiangchen2011  
    OP
       2018-08-04 17:45:13 +08:00
    @AngelCriss 可以可以,这个社区很不错啊
    AngelCriss
        18
    AngelCriss  
       2018-08-04 17:54:58 +08:00 via Android
    @xiangchen2011 然而这个社区并不活跃,大概只有祁宇一个人吧。。
    laike9m
        19
    laike9m  
       2018-08-04 18:39:49 +08:00 via Android
    视频的话推荐一个 YouTube 频道 TheChernoProject,正经的 EA 现役工程师,讲解清晰质量极高
    https://www.youtube.com/user/TheChernoProject
    gnaggnoyil
        20
    gnaggnoyil  
       2018-08-04 19:19:26 +08:00   ❤️ 1
    cppreference.com
    WG21 的 proposal paper 和 standard 的 working draft(主要是 proposal paper)
    CppCon 里的大部分 presentation
    《 Real World Haskell 》
    这些就基本够你看的了
    dtgio
        21
    dtgio  
       2018-08-04 19:52:25 +08:00 via iPhone
    @lance6716 有吗?怎么说?
    lance6716
        22
    lance6716  
       2018-08-04 20:15:27 +08:00 via Android
    xiangchen2011
        23
    xiangchen2011  
    OP
       2018-08-04 21:40:25 +08:00
    确实,python 学一会就可以撸个小程序出来,C++安装一个库可能就要很久,直接劝退
    yche
        24
    yche  
       2018-08-04 23:47:47 +08:00
    可以看看我之前写的这个推荐:

    http://blog.cheyulin.me/?p=318

    然后多线程加向量化可以看看我论文(icpp18)的代码:

    https://github.com/GraphProcessor/ppSCAN/tree/master/pSCAN-refactor

    顶会论文很多代码写的其实也比较粗糙... 要写好代码还得多练...
    fuyufjh
        25
    fuyufjh  
       2018-08-05 02:29:00 +08:00
    如果是学生。。为了身心健康,建议赶紧转 Java
    xiangchen2011
        26
    xiangchen2011  
    OP
       2018-08-05 09:28:46 +08:00
    @yche 嗯嗯,写的很详细
    xiangchen2011
        27
    xiangchen2011  
    OP
       2018-08-05 09:29:20 +08:00
    @fuyufjh 想搞科研,java 还是不太行啊,科研用的库比较少
    CokeMine
        28
    CokeMine  
       2018-08-05 12:11:53 +08:00
    为什么没人推荐 c++ primer plus、、
    renhua
        29
    renhua  
       2018-08-05 13:01:59 +08:00
    http://boolan.com/jjhou

    可能有点贵。不过有免费资源,请自行搜索
    Zeroxus
        30
    Zeroxus  
       2018-08-05 13:34:25 +08:00
    @CokeMine #28 C++ primer plus 这本没有 C++ primer 讲的干脆,啰里啰唆的容易把人绕晕
    fuyufjh
        31
    fuyufjh  
       2018-08-05 16:29:37 +08:00
    @xiangchen2011 这样~那就无所谓了
    HHehr0ow
        32
    HHehr0ow  
       2018-08-05 23:48:40 +08:00
    @gnaggnoyil 的回答是最 modern C++ 的进阶方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1484 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:09 · PVG 01:09 · LAX 09:09 · JFK 12:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.