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

2020 年 11 月 10 日
 zuiluo
最近几个月偶尔会写写 C++,基本上都是因为某个功能执行效率太差,我就把原来的代码改写到 C++上,然后再去调用这一模块功能。

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


比如说代码里面存在

vector<vector<vector

指针飞来飞去

在一个文件写到死


.....
4853 次点击
所在节点    C++
26 条回复
JQD6r41PkI4o2mEz
2020 年 11 月 10 日
boost 智能指针了解下, 学完 c++和 java 差不多了
mokeyjay
2020 年 11 月 10 日
既然你都知道自己“对 C++基本一窍不通”
那改进方式当然是学好西加加啦
MeatIndustry
2020 年 11 月 10 日
既然 lz 都知道不知道基础,那就学好基础啊,像你目前的症状,建议学习 C++里的 OO,重载,STL,智能指针,多个文件写和编译,甚至直接学习 C++20 的模块。充分运用现代 C++,不要写成了带 Class 的 C
xcstream
2020 年 11 月 10 日
那就用 c 吧
CRVV
2020 年 11 月 10 日
在一个文件写到死

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

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

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

另外赞同 18 楼 @edimetia3d 如非必要,不要用 C++,太复杂了,尤其是你这个需求还比较”高端“,本身 performance 就是比较搞的事情,再加上 C++,恐怕分身乏术呀。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/723668

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX