Symbian中的动态集合Rarray的使用

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

    struct TIndex
    {
        TUint        index;
        TBuf8<10>    key;
    };
   

   
// 比较函数
    TInt CompareKey (const struct TIndex & First, const struct TIndex & Second)
    {
       return First.key.Compare(Second.key);
    }


    TLinearOrder<struct TIndex>          anOrder(
CompareKey );
    RPointerArray<struct TIndex>         IndexTest;

    // 插入记录
   
struct TIndex* pIndexText = new (ELeave) TIndex ;
   
pIndexText->index = 0;
   
pIndexText-> key.Copy(_LIT8("test"));
    IndexTest .InsertInOrder(pIndexText, anOrder );

    // 查找记录
    TInt Pos = 0;
    struct TIndex Finder;
    Finder. index = 100;
   
Finder .key.Copy(_LIT8("test"));

    if((Pos=
IndexTest.FindInOrder(&Finder, anOrder)) != KErrNotFound)
    {
       // 找到了对应内容, 处理...
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值