c的股票信息数据结构?

Err*_*404 0 c data-structures

我是C的新手(不到一周),我正试图找出一种更有效的检索数据的方法.基本上想象我有几个股票数据:股票代码,价格,变化.

到目前为止,我的方法是将所有数据放在3个数组中.如果我想要IBM的价格,我搜索自动收报机数组并获取索引位置,然后从价格数组中获取该位置.它工作正常,但因为我做了很多查找,我的数据没有改变所以我想知道是否有更有效的方法来做到这一点?

我试图寻找一个字典/散列图来存储IBM作为键和价格/变化值作为值,但我似乎无法弄清楚如何在C中做到这一点.如果它可能有一个简单的方法去做这个?我正在研究一个不同的程序,并且真的不想学习如何从头开始创建自己的程序(尽管我必须这样做,我会对它进行处理).

wro*_*sty 5

试试这个:http://uthash.sourceforge.net/

首页的例子非常自我解释.

struct Stock {
   float price, change;
   char name[3];
   UT_hash_handle hh;
};

struct Stock * stocksHash = NULL;    
struct Stock * stockItem;
HASH_ADD_STR(stocksHash, name, stockItem );
HASH_FIND_STR(stocksHash, "IBM", stockItem );

//edit
void new_stock(struct Stock * stocksHash, char *name, float price, float change) {
    struct Stock *s;

    s = malloc(sizeof(struct Stock));
    strncpy (s->name, name, 3);
    s->price = price; s->change = change;
    s->id = user_id;
    HASH_ADD_STR( stocksHash, name, s );  
}

void update_stock (struct Stock * stocksHash, char *name, 
                   float price, float change) {
    struct Stock *s;
    HASH_FIND_STR (stocksHash, name, s);
    if (s) {
        s->price = price; s->change = change;
    }
}
Run Code Online (Sandbox Code Playgroud)