|
示例程序:
- /**
- * IndexData 按名称可理解为索引数据。<br>
- * 这个引擎模板即可以使用常规的int,float等做为索引标识,也可以使用String等字符串做为索引标识。
- */
- #include<stdio.h>
- #include<hgl/hgl.h>
- #include<hgl/Other.H>
- #include<hgl/IndexData.H>
-
- using namespace hgl;
- void GameMain(int,wchar_t **)
- {
- IndexData<int,String> is_data; //建立一个保存String字串的索引数据列表,以int型数据为索引,保存String数据
- IndexData<String,int> si_data; //建立一个保存数值的字串索引数据列表,以String数据为索引,保存int数据
-
- String data[10]={ L"Hello", L"World", L"Game", L"Byte", L"Phantasy",
- L"Crazy", L"C/C++", L"Basic", L"China", L"Star" };
-
- //压入10个数据
- int n=10;
- while(n--)
- {
- int val=FastRand();
-
- wprintf(L"push %d = %08X %s\n",n,val,data[n].wc_str());
-
- is_data.Add(n,data[n]); //压入以int型为索引标识的数据
-
- si_data.Add(data[n],val); //压入以String型为索引标识的数据
- }
-
- n=10;
- while(n--)
- {
- int index;
- int val;
- String str;
-
- index =FastRand(10); //取一个随机数当索引
-
- str =is_data.Get(index); //根据int型索引取出字串
-
- val =si_data.Get(str); //根据String型索引取出数值
-
- wprintf(L"%d = %08X %s\n",index,val,str.wc_str());
- }
- }
复制代码
测试输出结果
push 9 = 1C23D2A5 Star
push 8 = BC0E34BD China
push 7 = AB5A72B0 Basic
push 6 = BD563513 C/C++
push 5 = D872C68A Crazy
push 4 = 7FA4B7C9 Phantasy
push 3 = C30029F7 Byte
push 2 = 6E118728 Game
push 1 = FA5B214A World
push 0 = D84F13E8 Hello
6 = BD563513 C/C++
2 = 6E118728 Game
0 = D84F13E8 Hello
6 = BD563513 C/C++
9 = 1C23D2A5 Star
3 = C30029F7 Byte
5 = D872C68A Crazy
9 = 1C23D2A5 Star
9 = 1C23D2A5 Star
8 = BC0E34BD China |
|