打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Symbian中的动态集合Rarray的使用(页 1) - Symbian开发 - JBL...
Symbian中的动态集合Rarray的使用

[size=4]有C++经验的人,刚开始写sybmian程序,往往觉得sybmian的数据结构都比较奇怪,比如描述符,比如动态数组,另外很有用的一些C++的数据结构,比如map之类的都没提供,通用的STL类型也没法在symbian中使用。
    但实际上Rarray是一个设计的很有意思的类,它提供了InsertInOrder、FindInOrder两个函数,分别可以按照排序方式插入记录和快速查找功能。这两个函数,都使用了一个TLinearOrder<T> anOrder结构。而TLinearOrder<T>提供一个TLinearOrder(TInt(*anOrder)(const T&,const T&));构造函数,这个构造函数的参数是一个函数指针,指向一个比较大小的函数。[/size]
[size=4]    struct TIndex
    {
        TUint        index;
        TBuf8<10>    key;
    };
    [/size]
[size=4]    // 比较函数
    TInt CompareKey (const struct TIndex& First, const struct TIndex& Second)
    {
       return First.key.Compare(Second.key);
    }[/size]

[size=4]    TLinearOrder<struct TIndex>          anOrder(CompareKey);
    RPointerArray<struct TIndex>         IndexTest;[/size]
[size=4]    // 插入记录
    struct TIndex* pIndexText = new (ELeave) TIndex;
    pIndexText->index = 0;
    pIndexText->key.Copy(_LIT8("test"));
    IndexTest.InsertInOrder(pIndexText, anOrder);[/size]
[size=4]    // 查找记录
    TInt Pos = 0;
    struct TIndex Finder;
    Finder.index = 100;
    Finder.key.Copy(_LIT8("test"));[/size]
[size=4]    if((Pos=IndexTest.FindInOrder(&Finder, anOrder)) != KErrNotFound)
    {
       // 找到了对应内容, 处理...
    }
[/size]
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
MTD设备驱动和NANDFlash驱动程序分析
Linux信号量、共享内存、消息队列
快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础
LWIP内存池memp.c文件学习
STL hash_map
嵌入式编程中的复杂指针的使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服