zuiluo
V2EX  ›  C++

感觉自己写出来的 C++ 很 bullshit, 如何改进

  •  
  •   zuiluo · Nov 10, 2020 · 5386 views
    This topic created in 2185 days ago, the information mentioned may be changed or developed.
    最近几个月偶尔会写写 C++,基本上都是因为某个功能执行效率太差,我就把原来的代码改写到 C++上,然后再去调用这一模块功能。

    对 C++基本一窍不通下的情况去写 C++。然后写出来的代码,感觉一言难尽。。。。


    比如说代码里面存在

    vector<vector<vector

    指针飞来飞去

    在一个文件写到死


    .....
    26 replies  •  2021-04-09 17:18:40 +08:00
    JQD6r41PkI4o2mEz
    JQD6r41PkI4o2mEz
    Nov 10, 2020
    1
    boost 智能指针了解下, 学完 c++和 java 差不多了
    mokeyjay
    mokeyjay
    Nov 10, 2020
    2
    既然你都知道自己“对 C++基本一窍不通”
    那改进方式当然是学好西加加啦
    MeatIndustry
    MeatIndustry
    Nov 10, 2020 via iPhone
    3
    既然 lz 都知道不知道基础,那就学好基础啊,像你目前的症状,建议学习 C++里的 OO,重载,STL,智能指针,多个文件写和编译,甚至直接学习 C++20 的模块。充分运用现代 C++,不要写成了带 Class 的 C
    xcstream
    xcstream
    Nov 10, 2020
    4
    那就用 c 吧
    CRVV
    CRVV
    Nov 10, 2020
    5
    在一个文件写到死

    这个问题好办,学会手写 Makefile 就解决了。
    fgodt
    fgodt
    Nov 10, 2020
    6
    那就用 c 吧
    whenov
    whenov
    Nov 10, 2020 via iPhone
    7
    只改个别模块的话不如用纯 C
    newmlp
    newmlp
    Nov 10, 2020
    8
    不会写还改
    elfive
    elfive
    Nov 10, 2020 via iPhone
    9
    @imjamespond #1
    boost 不稳定,而且太臃肿。
    你说的智能指针这部分,早在 C++11 标准就吸收进来了,所以还不如啃 cpprefference 。
    elfive
    elfive
    Nov 10, 2020 via iPhone
    10
    @elfive #9 C++的智能指针应该说是早就有了:auto_ptr,但是鉴于不推荐使用,且已经在 C++11 已经废弃,所以就不算它存在了。
    neoblackcap
    neoblackcap
    Nov 10, 2020
    11
    cpp 没有想象中的难。cpp 是一个多范式语言。你选择一种复合你业务逻辑的范式去使用就好了
    你又要元编程,又要面向对象,那么显然都做不好。
    如果不是很熟,就当 cpp 是 c with class 用就好了。简单,没啥大问题。用好 RAII,内存泄漏也少了
    wevsty
    wevsty
    Nov 10, 2020
    12
    @elfive
    auto_ptr 虽然废弃了,但是不是也对应的推出了 shared_ptr,unique_ptr,weak_ptr 这么一套么。
    使用智能指针仍然是现代 cpp 推荐的使用方法。

    另外 boost 虽然有一些槽点,但是并没有觉得不稳定。
    AlohaV2
    AlohaV2
    Nov 10, 2020
    13
    多写写,多看看 github 上别人怎么写的就好了
    dilu
    dilu
    Nov 10, 2020
    14
    要不试试 Rust ?
    zuiluo
    zuiluo
    OP
    Nov 10, 2020 via Android
    15
    谢谢楼上各位的意见,主要原因还是基础差(可能根本没有),需要专门恶补一下 T_T
    xpol
    xpol
    Nov 10, 2020
    16
    感觉你是不知道如何组织程序代码。
    找个有经验的人结对编程试试。
    zuiluo
    zuiluo
    OP
    Nov 10, 2020 via Android
    17
    @xpol 也有一部分原因是,楼主本人日常只写 Js…
    edimetia3d
    edimetia3d
    Nov 10, 2020
    18
    如果只是为了改进性能,偶尔用用,同样建议只用 C 相关的部分,随便写,能用即可,编译器会给你优化的很好。

    C++不是主力语言的话。。。没必要补,feature 太多,要填的坑数不过来。
    thefack
    thefack
    Nov 10, 2020
    19
    可以尝试 Golang 。。
    levelworm
    levelworm
    Nov 10, 2020
    20
    看看基本 C++/11 的教科书就可以了吧,推荐一下堆栈溢出的书单。
    https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

    另外赞同 18 楼 @edimetia3d 如非必要,不要用 C++,太复杂了,尤其是你这个需求还比较”高端“,本身 performance 就是比较搞的事情,再加上 C++,恐怕分身乏术呀。
    h5h6l3otQK8vLTYv
    h5h6l3otQK8vLTYv
    Nov 10, 2020
    21
    [Effective Modern C++]( https://book.douban.com/subject/30178902/) 解君愁
    Wirbelwind
    Wirbelwind
    Nov 11, 2020
    22
    https://www.bfilipek.com/

    看多一点别人的好写法
    不建议直接或者一直看书 因为现在对楼主的真正效果应该很少
    Loserzhu
    Loserzhu
    Nov 11, 2020
    23
    @zuiluo 楼主是写 node ?还是写 cpp 编译成 wasm
    zuiluo
    zuiluo
    OP
    Nov 11, 2020
    24
    @Loserzhu 写 node
    zuiluo
    zuiluo
    OP
    Nov 11, 2020
    25
    @Wirbelwind 这个 blog 我喜欢 hhhh
    archxm
    archxm
    Apr 9, 2021
    26
    告诉你一个秘密,cpp 代码写的漂亮的,一般都头发比较少。所以你想代码写漂亮,知道怎么做了吧?。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1534 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 17:48 · PVG 01:48 · LAX 09:48 · JFK 12:48
    ♥ Do have faith in what you're doing.