updated MapTest

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-08-10 16:39:00 +08:00
parent 707710f664
commit 232590e9b7
3 changed files with 55 additions and 23 deletions

View File

@ -88,14 +88,39 @@ void StringMapTest()
});
cout<<endl;
}
void StringObjectMapTest()
{
ObjectMap<UTF8String,UserInfoClass> ui_map;
for(auto &ui:user_info_array)
{
UserInfoClass *uic=new UserInfoClass;
uic->Set(ui);
ui_map.Add(ui.name,uic);
}
ui_map.Enum([](const UTF8String &key,UserInfoClass *&ui)
{
cout<<"["<<key<<","<<(ui->GetSex()?"male":"female")<<","<<ui->GetAge()<<"]"<<endl;
});
cout<<endl;
}
int main(int,char **)
{
cout<<"Map<int,int> Test"<<endl;
IntMapTest();
cout<<"Map<String,UserInfo> Test"<<endl;
StringMapTest();
cout<<"ObjectMap<String,UserInfoClass> Test"<<endl;
StringObjectMapTest();
return(0);
}

View File

@ -54,29 +54,6 @@ void StructPoolTest()
}
}
class UserInfoClass
{
UserInfo info;
public:
UserInfoClass()=default;
void Set(const UserInfo &ui)
{
memcpy(&info,&ui,sizeof(UserInfo));
cout<<"UserInfoClass::Set("<<info.name<<")"<<endl;
}
~UserInfoClass()
{
cout<<"~UserInfoClass("<<info.name<<")"<<endl;
}
const char *GetName()const{return info.name;}
};
void ShowUserInfoArray(const DataArray<UserInfoClass *> &ua)
{
cout<<"user info array "<<ua.GetCount()<<" [";

View File

@ -1,5 +1,10 @@
#pragma once
#include<string.h>
#include<iostream>
using namespace std;
struct UserInfo
{
char name[32];
@ -39,3 +44,28 @@ static UserInfo user_info_array[]=
{"Yoyo",false,42},
{"Zack",true,43}
};
class UserInfoClass
{
UserInfo info;
public:
UserInfoClass()=default;
void Set(const UserInfo &ui)
{
memcpy(&info,&ui,sizeof(UserInfo));
cout<<"UserInfoClass::Set("<<info.name<<")"<<endl;
}
~UserInfoClass()
{
cout<<"~UserInfoClass("<<info.name<<")"<<endl;
}
const char *GetName()const{return info.name;}
const bool GetSex()const{return info.sex;}
const int GetAge()const{return info.age;}
};