V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
q397064399
V2EX  ›  程序员

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

  •  
  •   q397064399 · 2016-09-04 19:05:26 +08:00 · 4480 次点击
    这是一个创建于 3035 天前的主题,其中的信息可能已经有所发展或是发生改变。
    讲真的,不想学 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   ·   实用小工具   ·   2662 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:26 · PVG 08:26 · LAX 16:26 · JFK 19:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.