Symbian中的动态集合Rarray的使用(页 1) - Symbian开发 - JBL...
来源:百度文库 编辑:神马文学网 时间:2024/04/30 11:44:59
Symbian中的动态集合Rarray的使用
[size=4]有C++经验的人,刚开始写sybmian程序,往往觉得sybmian的数据结构都比较奇怪,比如描述符,比如动态数组,另外很有用的一些C++的数据结构,比如map之类的都没提供,通用的STL类型也没法在symbian中使用。
但实际上Rarray是一个设计的很有意思的类,它提供了InsertInOrder、FindInOrder两个函数,分别可以按照排序方式插入记录和快速查找功能。这两个函数,都使用了一个TLinearOrder anOrder结构。而TLinearOrder提供一个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 anOrder(CompareKey);
RPointerArray 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]
[size=4]有C++经验的人,刚开始写sybmian程序,往往觉得sybmian的数据结构都比较奇怪,比如描述符,比如动态数组,另外很有用的一些C++的数据结构,比如map之类的都没提供,通用的STL类型也没法在symbian中使用。
但实际上Rarray是一个设计的很有意思的类,它提供了InsertInOrder、FindInOrder两个函数,分别可以按照排序方式插入记录和快速查找功能。这两个函数,都使用了一个TLinearOrder
[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
RPointerArray
[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]
Symbian中的动态集合Rarray的使用(页 1) - Symbian开发 - JBL...
symbian
搭建Symbian开发环境
Symbian开发入门
Symbian开发入门
Symbian开发入门
Symbian 上关于位图的使用
Symbian OS开发入门(一) :基于VS.Net 2003的Symbian开发环境的准备
Symbian OS开发入门(一) :基于VS.Net 2003的Symbian开发环境的准备
Symbian中的GLDEF_C, LOCAL_C, GLREF_C 的含义
Symbian OS开发入门(二) :VS2003环境下Symbian工程的导入与建立
Symbian OS 开发初级手册
VC6 Symbian开发环境配置
正确建立Symbian开发环境的方法Nokia版
正确建立Symbian开发环境的方法Nokia版
Symbian开发平台的搭建之VC 6.0
我使用的手机软件『Nokia Symbian S60 V3』
Symbian中使用活动对象的三种典型设计
关于RMsgQueue类的使用 - World of Symbian - CSDN博客
在Symbian开发环境下如何编写静态接口DLL(动态链接库)
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台(一)
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台(二)
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台(三)
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台(四)