V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
noah1987
V2EX  ›  程序员

一个小功能,用数组还是链表实现好?

  •  
  •   noah1987 · 2017-08-23 11:22:05 +08:00 · 2315 次点击
    这是一个创建于 2445 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们公司是做自动售货机刷卡器的。客户刷银行卡买东西。
    在使用被盗的银行卡时,为了减少损失,打算实现一个每张卡每天最多在同一个机器上刷 5 次的功能。
    每台机器每天最多的刷卡数不会超过 100。
    机器里在跑 c 语言程序。怎么在机器上实现比较好?
    1.直接全局变量一个长度 100 的结构体数组。结构里是有卡号和刷卡次数。每次刷卡时遍历数组。
    2.实现一个链表。刷卡时遍历,没有记录就 malloc 内存增加节点。

    怎么实现比较好?
    11 条回复    2017-08-23 20:00:25 +08:00
    jlsk
        1
    jlsk  
       2017-08-23 11:32:56 +08:00
    用 std::map,什么年代了还重复造轮子
    noah1987
        2
    noah1987  
    OP
       2017-08-23 11:35:58 +08:00
    @jlsk c,不是 c++
    RLib
        3
    RLib  
       2017-08-23 11:37:49 +08:00
    sys/queue.h
    swulling
        4
    swulling  
       2017-08-23 11:42:34 +08:00 via iPhone
    放内存,机器重启了不就清空了么
    noah1987
        5
    noah1987  
    OP
       2017-08-23 11:51:10 +08:00
    @swulling 这不是问题。不大在乎这个。
    goodspb
        6
    goodspb  
       2017-08-23 11:54:11 +08:00
    题主现在担心的问题是?
    leewangyang
        7
    leewangyang  
       2017-08-23 12:00:28 +08:00 via Android
    不太懂关注点在哪。。。效率么?反正都是遍历,空间麽?链表的空间极限状况还要用多一些,100 个应该也不用担心空间不足问题。唯一的问题是,100 这个数字只是目前的情况吧,以后如果确定肯定不会变就数组呗,要是会变而且增多到多少不能确定就链表呗
    NoAnyLove
        8
    NoAnyLove  
       2017-08-23 12:05:02 +08:00
    所以机器到底是什么样的机器?接近普通 PC 的处理能力和内存?还是说是嵌入式设备?是运算能力比较弱的机器?还是内存比较小的机器?处理能力和内存大概是个什么水平?用的什么编译器?这些基本条件需要给够啊。

    你如果内存够大,顺便分配,那当然搞个大数组没问题;你如果内存紧张,那当然又不同了。如果接近 PC 的运算能力,那你想怎么弄都行。

    另外,你这么肯定刷卡次数不会超过 100 ?万一超过了怎么办?
    gnaggnoyil
        9
    gnaggnoyil  
       2017-08-23 12:32:57 +08:00
    @noah1987 那就自己手动实现一个 map.反正都用 C 了那肯定是不在乎开发效率了对吧……
    noah1987
        10
    noah1987  
    OP
       2017-08-23 12:49:05 +08:00
    跟老板商量了下改变实现方式了。
    一个数组记录最近 5 张卡,重复多的拒绝。
    sampeng
        11
    sampeng  
       2017-08-23 20:00:25 +08:00
    长度 100.。有什么纠结的。。1000-10000 都在现代计算机上都没什么纠结的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2001 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:06 · PVG 09:06 · LAX 18:06 · JFK 21:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.