C++ 实现一个支持模板的 SkipList - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
zhengji

C++ 实现一个支持模板的 SkipList

  •  
  •   zhengji
    zheng-ji Aug 11, 2018 3462 views
    This topic created in 2816 days ago, the information mentioned may be changed or developed.

    License: MIT

    SkipList

    使用模板实现的跳表:

    • 使用简单,只需要引入头文件 SkipList.h
    • 支撑增删改查
    • 支持各种类型: 包括内建类型, 自定义数据结构

    Quick Start

    #include "SkipList.h" #include <iostream> using namespace std; int main() { SkipList<int> sl; sl.Print(); sl.Insert(3); sl.Insert(1); sl.Insert(0); if (sl.Contains(s1)) { cout << "3 in list" << endl; } sl.Print(); sl.Erase(s1); sl.Print(); if (!sl.Contains(s1)) cout << "3 has been deleted" << endl; return 0; } 
    8 replies    2018-08-15 17:45:14 +08:00
    coordinate
        1
    coordinate  
       Aug 12, 2018
    。。。这也可以开源吗,而且你这代码质量不行啊
    GeruzoniAnsasu
        2
    GeruzoniAnsasu  
       Aug 12, 2018 via Android
    课……课堂作业?
    lychnis
        3
    lychnis  
       Aug 12, 2018
    楼上暴击...
    看了下, 确实需要提高代码水平..
    这年头为啥什么人都想着开源呢....国内这种浮躁的风气真是提现方方面面..
    大概随便看了几眼, 说几个改进点
    1 int 这种类型不要随便乱用
    2 分配内存 new...??? std 标准库没看过? 给个分配器啊大哥
    3 #define MAX_LEVEL 100 ????
    4 很多地方缺少 checker.. 同上 麻烦看下 std 一般实现
    5 变量名 x 这种太随意了.. 如果面试写出这种代码..怕是直接 pass 了
    6 楼下补充
    yulon
        4
    yulon  
       Aug 12, 2018
    演示代码变量名和 int 都没什么关系,分配器这种东西,标准委员会都觉得普通容器加上简直脱裤子放屁,还会增加不必要的代码,所以搞了个 std::pmr,有需求再用,旧的还支持只是为了兼容旧的分配器模型。
    ccpp132
        5
    ccpp132  
       Aug 14, 2018
    感觉 skip list 和 c++内置的 rbtree 比没什么优势啊
    wyx
        6
    wyx  
       Aug 14, 2018
    @ccpp132 skip list 的实现简单
    shilyx
        7
    shilyx  
       Aug 14, 2018   1
    距离“库”的要求还比较远
    1、头文件中出现“ using std ”?
    2、Print 函数直接打印到控制台?

    暂没到做“库”的水平但有做“库”的心,相信是个好的开始,先自己持续使用和迭代吧
    plusice
        8
    plusice  
       Aug 15, 2018   1
    老纪!
    About     Help       Blog     API     FAQ     Solana     957 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 20:48 PVG 04:48 LAX 13:48 JFK 16:48
    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