那些用 C 语言写代码的,请问你们日常的算法数据结构都是自己重新抄一遍,还是有啥通用的库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
q397064399
V2EX    程序员

那些用 C 语言写代码的,请问你们日常的算法数据结构都是自己重新抄一遍,还是有啥通用的库

  •  
  •   q397064399 2016-09-04 19:05:26 +08:00 4942 次点击
    这是一个创建于 3398 天前的主题,其中的信息可能已经有所发展或是发生改变。
    讲真的,不想学 C++,如果只拿来当 C with Class 用,太浪费,有没有比较好的标准库之类的
    实现了常见的 Map Set 之类的数据结构,以及通用算法之类的库
    26 条回复    2016-10-01 19:48:22 +08:00
    q397064399
        1
    q397064399  
    OP
       2016-09-04 19:16:39 +08:00
    找到了 glib
    mantianyu
        2
    mantianyu  
       2016-09-04 20:58:19 +08:00
    一般自己要写一遍, 写过一遍之后以后就直接拿来用了
    wsy2220
        3
    wsy2220  
       2016-09-05 01:04:50 +08:00 via Android
    apache apr
    q397064399
        4
    q397064399  
    OP
       2016-09-05 05:46:39 +08:00
    @mantianyu 累人啊,我找了 glib 不过国内貌似没有中文资料,看来还是要学 C++
    q397064399
        5
    q397064399  
    OP
       2016-09-05 05:47:40 +08:00
    @mantianyu 不是英文不好,只是英文资料看起来累人,毕竟还是要借助一些翻译工具来翻译 不懂的词汇,降低了阅读速度
    jiangtao92
        6
    jiangtao92  
       2016-09-05 09:22:04 +08:00   1
    @q397064399 冒昧的说一句,这个不就是英语不好吗?
    Keyes
        7
    Keyes  
       2016-09-05 09:40:49 +08:00
    firebroo
        8
    firebroo  
       2016-09-05 11:22:09 +08:00
    FrankHB
        9
    FrankHB  
       2016-09-05 12:17:52 +08:00
    为什么需要学 C++。是个(你能找到的)语言在“有没有”这方面不都基本差不多?
    也就 C 这种得纠结找这类玩意儿吧。
    jasonlz
        10
    jasonlz  
       2016-09-05 14:12:22 +08:00
    STL 还不够你用吗?
    bombless
        11
    bombless  
       2016-09-05 14:31:44 +08:00 via Android
    你们可以试试 cyclone ,基本上就是 c 加上指针生存期,不过没有泛型

    其实我觉得 http://michalis.ii.uni.wroc.pl/~michalis/modern_pascal_introduction/modern_pascal_introduction.html 也不错。拥抱 gc 也是一个选择
    j4fun
        12
    j4fun  
       2016-09-05 15:06:58 +08:00
    不要想太多了。。公司不会让乱你用各种库的,,基本上就是自己写。。或者公司原来有写好的直接用= =
    q397064399
        13
    q397064399  
    OP
       2016-09-05 20:42:12 +08:00
    @jiangtao92 我说的英文好是相对非母语国家的人来讲,
    一篇文档要完全不借助翻译软件,至少要上万的词汇量吧,
    绝大部分中国人的词汇量多少 4000-6000 算平均水平吧?还有词义理解方面的问题
    一篇英文文档 如果没有示例,就是一堆废话在那里 BB 你认为能完全理解 那些 API 怎么用的,会很好受?
    q397064399
        14
    q397064399  
    OP
       2016-09-05 20:43:52 +08:00
    @bombless 主要是为了在 openwrt 上写代码,只能原生 C 其余的太重
    q397064399
        15
    q397064399  
    OP
       2016-09-05 20:45:20 +08:00
    @j4fun 不是公司的项目,自己写着玩的,主要运行在 资源有限的嵌入平台 例如路由器 开发板之类的
    q397064399
        16
    q397064399  
    OP
       2016-09-05 20:45:42 +08:00
    @jasonlz 那是 C++,我说的是纯 C
    q397064399
        17
    q397064399  
    OP
       2016-09-05 20:46:46 +08:00
    @FrankHB 路由器,资源有限, 已经选 C++了 不打算深入高级特性
    taozhijiangscu
        18
    taozhijiangscu  
       2016-09-06 08:53:16 +08:00
    @q397064399 C 不支持模板,所以很难有十分通用的库出现吧。 C++是可以当作 C 来用,不过如果 4M/8M 的 flash ,可能塞不下吧。。。。
    FrankHB
        19
    FrankHB  
       2016-09-06 11:45:30 +08:00
    @bombless 题主最缺的就是泛型……
    @q397064399 你什么路由器硬件配置那么痤……我这里 ARM946E-S 67MHz + 2M RAM 的 NDS 上 g++ -std=c++11 不关 RTTI 和异常只要-Os -s 了完全无压力,就算-O0 -g -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC 都不至于跑不动;映像大小不爽自己一个个调优也不见得会费多大事,大不了魔改一下标准库实现,就差点手撸 softmmu 了……
    用不用“高级特性”倒是无所谓,不过 C 的抽象无能也救不了你手贱乱用自己不清楚代价的东西导致的资源浪费。
    q397064399
        20
    q397064399  
    OP
       2016-09-06 12:32:15 +08:00
    主机名 OpenWrt
    主机型号 Buffalo WZR-HP-AG300H/WZR-600DHP
    CPU 型号 Atheros AR7161 rev 2
    CPU 频率 680 MHz
    内存频率 340 MHz
    闪存容量 32 MB
    固件版本 OpenWrt Chaos Calmer 15.05.1 r49208 新春版 by 明月永在
    内核版本 3.18.29
    本地时间 Tue Sep 6 12:31:47 2016
    运行时间 3d 15h 2m 14s
    平均负载 0.09, 0.06, 0.05
    @FrankHB
    确实搓了一点,跑 C++应该问题不大,
    wizardoz
        21
    wizardoz  
       2016-09-06 12:48:19 +08:00
    能力不行,用不到各种高端的数据结构。
    平时用的最多的就是队列什么的,在 #include <sys/queue.h> 就有。
    paw
        22
    paw  
       2016-09-06 14:36:30 +08:00
    常见数据结构在 github 上都有,扒就是了。。。。
    q397064399
        23
    q397064399  
    OP
       2016-09-06 17:33:16 +08:00
    @wizardoz 啥高端的数据结构,我也就用下 hashmap 红黑树,其它的高端一点的算法 我都不会
    q397064399
        24
    q397064399  
    OP
       2016-09-06 17:33:29 +08:00
    @paw 嗯,确实
    alqaz
        25
    alqaz  
       2016-10-01 15:45:39 +08:00 via Android
    nginx.pjsip 一大堆
    q397064399
        26
    q397064399  
    OP
       2016-10-01 19:48:22 +08:00
    @alqaz 已经上 C with Class 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4109 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 05:31 PVG 13:31 LAX 21:31 JFK 00:31
    Do have faith n 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