用 c++做算法,用什么编程工具比较好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请要在回答技术问题时复制粘贴 AI 生成的内容
pastel
V2EX    程序员

用 c++做算法,用什么编程工具比较好?

  •  
  •   pastel 2017-01-15 11:14:59 +08:00 8374 次点击
    这是一个创建于 3198 天前的主题,其中的信息可能已经有所发展或是发生改变。
    gdb 即使用某插件,调试 gdb 还是很痛苦啊
    vs 调试功能强大,但是一大堆无关文件,看着也头大

    有什么工具,可以干净地调试算法呢?
    母亲还是觉得 vc6 不错,但是 stl 调试功能还是有点弱

    有什么更好的工具呢?
    68 条回复    2017-02-04 16:40:04 +08:00
    gamecreating
        1
    gamecreating  
       2017-01-15 11:27:43 +08:00   1
    VS
    messyidea
        2
    messyidea  
       2017-01-15 11:41:26 +08:00 via Android
    cfree codeblocks
    ipwx
        3
    ipwx  
       2017-01-15 11:44:58 +08:00
    完善的平台:

    Windows 平台用 Visual Studio >= 2015 ,如果不差钱再加上一个 Visual Assist X 。
    Mac 平台可以考虑 JetBrains CLion ,或者 Xcode 也能凑合用。
    Linux 可以考虑 KDevelop 。
    zhidian
        4
    zhidian  
       2017-01-15 12:02:41 +08:00
    qt creator + cmake/make + mingw/linux
    pimin
        5
    pimin  
       2017-01-15 12:07:08 +08:00
    VS
    tracyone
        6
    tracyone  
       2017-01-15 12:08:10 +08:00
    vc6?????十几年前的东西还用?
    akakcolin
        7
    akakcolin &nbs;
       2017-01-15 12:25:51 +08:00
    用 qt
    kokutou
        8
    kokutou  
       2017-01-15 12:28:12 +08:00 via Android
    vc6 ???
    黑人问好.jpg
    feng32
        9
    feng32  
       2017-01-15 12:30:57 +08:00
    vim + gcc + 打日志就够了
    lsmgeb89
        10
    lsmgeb89  
       2017-01-15 12:40:57 +08:00
    gdb 有什么痛苦的?
    nopy
        11
    nopy  
       2017-01-15 12:40:58 +08:00
    xiaopc
        12
    xiaopc  
       2017-01-15 12:44:53 +08:00 via Android
    Codeblocks or Dev-C++
    不直接输 gdb 命令还想多痛苦
    xuboying
        13
    xuboying  
       2017-01-15 12:47:34 +08:00 via iPhone
    矫情。。。 c++ vse 宇宙无敌,啥叫一堆无用文件。。。太不尊重 vs 开发团队了。
    linboki
        14
    linboki  
       2017-01-15 12:51:31 +08:00 via Android
    @xuboying 你这样说 不太尊重外星文明
    starvedcat
        15
    starvedcat  
       2017-01-15 12:52:49 +08:00
    “干净地调试”中的“干净”是什么意思
    xuboying
        16
    xuboying  
       2017-01-15 12:58:44 +08:00 via iPhone
    @linboki 外星人不用 c++
    bdbai
        17
    bdbai  
       2017-01-15 12:59:54 +08:00 via Android
    Qt Creator
    waruqi
        18
    waruqi  
       2017-01-15 13:05:34 +08:00
    vim + xmake
    waruqi
        19
    waruqi  
       2017-01-15 13:10:51 +08:00
    做算法 还是用 c 吧。。嘿嘿
    cnilnhf
        20
    cnilnhf  
       2017-01-15 14:00:25 +08:00 via Android
    Dev-C++
    ddhwen
        21
    ddhwen  
       2017-01-15 14:15:19 +08:00 via Android
    Dev-C++,功能一般,但用来做 oJ 足以,胜在轻量
    laven
        22
    laven  
       2017-01-15 14:47:49 +08:00
    vim / source insight / sublime / vscode
    siloong
        23
    siloong  
       2017-01-15 14:50:04 +08:00
    code blocks +1
    iCyMind
        24
    iCyMind  
       2017-01-15 15:21:31 +08:00
    你母亲好厉害, 居然还会调试
    trn4
        25
    trn4  
       2017-01-15 15:27:48 +08:00
    Windows: VS/CLion/Qt Creator
    Linux: CLion/vim
    syahd
        26
    syahd  
       2017-01-15 15:28:11 +08:00 via Android
    您妈妈居然会编程,看来是编程世家
    pzzrudlf
        27
    pzzrudlf  
       2017-01-15 15:54:12 +08:00 via Android
    @whwq2012 可能是老师
    Readme16
        28
    Readme16  
       2017-01-15 15:57:34 +08:00 via iPhone
    @whwq2012 lz 想说的应该是目前吧……
    potaty
        29
    potaty  
       2017-01-15 16:00:05 +08:00
    gdb
    zhangbohun
        30
    zhangbohun  
       2017-01-15 16:02:40 +08:00
    Dev-cpp
    youngitachi
        31
    youngitachi  
       2017-01-15 16:02:58 +08:00
    @Readme16 估计是这意思,笑死我了。
    oska874
        32
    oska874  
       2017-01-15 16:20:05 +08:00   1
    用脑子比较好。
    extreme
        33
    extreme  
       2017-01-15 16:23:43 +08:00
    怎么那么少人推荐 CLion ,我觉得 CLion 比 VS 好用得多。
    zhidian
        34
    zhidian  
       2017-01-15 16:28:22 +08:00
    CLion 太贵……
    zhidian
        35
    zhidian  
       2017-01-15 16:28:54 +08:00
    最厌烦 JB 的产品不能一次性买断。
    scorfish
        36
    scorfish  
       2017-01-15 16:46:38 +08:00
    CLion 有点慢
    yangff
        37
    yangff  
       2017-01-15 16:57:03 +08:00
    VS 开一个 Empty Project
    然后把要调试的代码直接拖进项目的 Source

    这时候你就可以调试他了

    最后搞完右键排除出项目,就行了。一个项目多次使用

    然后呢,有些 OJ 是文件 IO ,有些是键盘输入,后者每次调试都要输入很烦

    可以直接建一个新的代码文件,放一个 struct ,它的构造函数里面写 freopen ,析构写 close ,还可以按需要加上 system("pause")之类的
    j5shi
        38
    j5shi  
       2017-01-15 16:57:16 +08:00
    看到"母亲"有点懵逼了...
    htfy96
        39
    htfy96  
       2017-01-15 16:58:24 +08:00
    算法直接 vim + g++ + gdb 嘛。。或者 Linux 下可以 CLion, 2016.3.2 的 bug 已经修了不少了
    alqaz
        40
    alqaz  
       2017-01-15 18:18:44 +08:00
    win 下 vs2015 ,其他的话 Qt Creator.
    coderluan
        41
    coderluan  
       2017-01-15 18:24:35 +08:00
    codeblocks/codelite 应该能满足楼主要求。
    mingw+vscode+cpp 插件也不错。
    但是其实都不如 vs 舒服,一大堆文件那个我感觉是楼主没用明白或者强迫症。
    TaMud
        42
    TaMud  
       2017-01-15 18:27:55 +08:00
    @oska874
    我也觉得,必须有脑子才行

    就这种智商,这群人几乎可以告别 IT 界了
    TaMud
        43
    TaMud  
       2017-01-15 18:30:35 +08:00
    连数学模型都不会,还搞啥算法。。。。。。。。。
    uxstone
        44
    uxstone  
       2017-01-15 18:43:56 +08:00
    学个算法还纠结编程工具 ???
    当在做工程呐
    写工程项目推荐 Clion+CMake
    wdongxv
        45
    wdongxv  
       2017-01-15 20:24:56 +08:00
    竟然没人推荐 eclipse + CDT
    mayne95
        46
    mayne95  
       2017-01-15 21:18:31 +08:00 via Android
    vc6 看内存调试是挺爽的
    newtype0092
        47
    newtype0092  
       2017-01-15 21:34:31 +08:00   1
    我以前也觉得 VS 臃肿,里面一大堆没用的东西,跟前辈学了一年才觉得里面每个功能、工程里每个文件都是有用的,平时也许不太用的着,但遇到问题的时候才显得这些东西的重要。
    对初学者来说 VS 就像飞机,密密麻麻全是按钮仪表盘,看着还不如自行车蹬上就能走,但学到一定程度就可以起飞了~
    noahsss
        48
    noahsss  
       2017-01-15 21:40:10 +08:00
    CodeBlocks
    ipwx
        49
    ipwx  
       2017-01-15 22:06:53 +08:00
    IDE 上手慢,但是熟悉之后绝对可以提升任何任务的工作效率。
    HFX3389
        50
    HFX3389  
       2017-01-15 22:07:36 +08:00
    @newtype0092 跟我同学一样,我们现在在学 Java ,他会一些 C++,他觉得 intellij idea 比 VS 好用得多!
    herozhang
        51
    herozhang  
       2017-01-15 22:24:31 +08:00
    emacs
    Cbdy
        52
    Cbdy  
       2017-01-15 22:44:35 +08:00 via Android
    netbean
    rocksolid
        53
    rocksolid  
       2017-01-15 23:08:56 +08:00
    建议练习白板用编辑器, notepad++之类,只要能编译个结果就行,碰到男的要调试, vs 不二选择
    monnand
        54
    monnand  
       2017-01-16 01:05:36 +08:00 via Android
    Vim + YouCompleteMe
    用单元测试代替调试器。如果必须用调试器, gdb 也差不多了。但是需要用到调试器的时候就证明你代码或测试有问题
    chai2010
        55
    chai2010  
       2017-01-16 07:11:17 +08:00 via iPhone
    居然没有人推荐面向 printf 调试
    araraloren
        56
    araraloren  
       2017-01-16 08:45:37 +08:00
    qtcreator +1
    跨平台的最强大的 c/c++ IDE 不是吹的~~
    snnn
        57
    snnn  
       2017-01-16 08:48:34 +08:00 via Android
    好好学 gdb 或者 WinDbg ,这二者非常优秀,无可替代
    owt5008137
        58
    owt5008137  
       2017-01-16 09:04:29 +08:00 via Android
    讲道理 vc6 生成的工程文件和中间文件数量和 vs2015 差不多多吧。上面提到的那么多 ide ,哪个不是要生成中间文件和会生成工程文件的?
    如果是要打开就能编译调试还是 codeblocks 或者 codelite 吧,至少比较轻量级。
    vc6 的编译器都老掉牙了,茫茫多语法和特性和现在的标准不兼容,现在还用不是误导人么。
    clion 学生是免费的,也是目前最智能的 c++ IDE ,但是确实太耗内存了,而且不是 ssd 硬盘也不太扛得住,而且还要你学习 cmake 。综合起来还是 visual studio 的消耗低也足够智能。

    @yangff 我以前搞 acm 的时候也喜欢 freopen ,然而后来知道直接重定向输入和输出流不是更简单?都不用写代码。 system("pause")是仅支持 windows 的,你运行的时候 ctrl+f5 (非调试运行),运行完不会退出的,如果直接 f5 (调试运行),那直接结尾打断点好了
    stormpeach
        59
    stormpeach  
       2017-01-16 09:05:19 +08:00
    没有比 gdb 更好的调试器了,少年多多修炼吧
    yangff
        60
    yangff  
       2017-01-16 09:16:50 +08:00
    @owt5008137 哪个简单自己试试就知道了…… 你还可以在里面加自动测试的代码,计时、计内存的的代码……
    你这个代码只要丢在 Source 里面,编译的时候会被自动 link 上,你动都不用动他。
    springzero
        61
    springzero  
       2017-01-16 09:30:46 +08:00
    codeblocks +1
    HuangLibo
        62
    HuangLibo  
       2017-01-16 09:49:49 +08:00
    vscode 有人推荐吗?
    tairan2006
        63
    tairan2006  
       2017-01-16 09:59:12 +08:00   1
    vs2017 rc 只安装 C++的就完了。。
    yuankui
        64
    yuankui  
       2017-01-16 10:01:57 +08:00
    楼主没有纠结到电子上
    starqoq
        65
    starqoq  
       2017-01-16 12:46:39 +08:00 via Android
    我一般都是 notepad++
    不用 ide 是因为 IDE 的提示太烦人。打断思路。

    写完再放到 vs 里编译。
    ryd994
        66
    ryd994  
       2017-01-16 13:04:07 +08:00 via Android
    如果你只能靠 debugger 来定位问题,说明你的 debug 日志不及格
    vim+gcc+valgrind 足够了
    有些时候做题之类的,单纯验证算法而不在乎代码质量的时候,我会用 kgdb
    你说 gdb 麻烦是因为没有好的 gui 前端
    Tianqi
        67
    Tianqi  
       2017-01-16 18:15:18 +08:00 via iPhone
    除非你是 single file program ,不然还是用 VS 比较好,那些文件类似于 CMakeList , Make File 的作用, C++是逃不开的。那些文件里好多还是临时文件,版本管理可以无视的。
    misaka19000
        68
    misaka19000  
       2017-02-04 16:40:04 +08:00
    @tairan2006 确实, VS2017 终于不用再像以前那样装个 VS 花掉 50G 的硬盘空间了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2604 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 12:41 PVG 20:41 LAX 05:41 JFK 08:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86