看了标题,很多人可能会觉得直接用数组直接访问,不能动态添加减少,可能造成空间浪费什么的,这要看什么场景,比如股票的实时场景就非常适合,qq这种自增长的也很适合,要不动不动找一个人,都要从几亿人里面查找,不得累死啊。太多了,现在不是有很多服务器,完全可以分段啊
在这里我介绍一下股票行情的应用场景,股票一共就几k支,怎么能最块的访问,那就是直接访问下标,每天早上9点到9.15弄个初始化,有新股标则加入,那不可能是从30000 一直到39999股票都有对应的股票,不过没关系,你就多出一些空间,如果有股票的,需 要的数据,等代码存在,也就是上市后,再进行申请不是可以吗?这样只存几个股票代码能费多少空间了,而且对股票行情软件来说,增加点内存能快速提升速度何乐不为,而且主要是在服务器,客服端不是没有相应增加啊
而且每天的股票行情,只要程序没写的太离谱的bug,这种直接访问压根是不会死机的啊,那如果死机了没办法,觉得应该用其它也有问题,这得提高自身的程序编写水平,多练习
typedef struct stock
{
char stockname[16];
int stockid;
StockInfoclass* pstockinfo;//真正存股票信息行情的相关类
}stock_tag,*p_stock;
stock * g_pItemArray = new stock[400000];
for(int i = 0;i<400000;i++)
{
memset(g_pItemArray[i],0x00,sizeof(stock));
g_pItemArray[i]->p_stock = i;
g_pItemArray[i]->pstockinfo = NULL;
}
stock* findStock(int nStockId)
{
return g_pItemArray[nStockId];
}