c?的股票信息数据结构?
我是C语言的新手(不到一个星期),我正试图找到一种更有效的检索数据的方法。基本上假设我有一些股票数据:股票行情、价格、变化 到目前为止,我的方法是将所有数据放在3个数组中。如果我想要IBM的价格,我搜索ticker数组并获得索引位置,然后从price数组中获得该位置。它工作得很好,但因为我做了很多查找,而且我的数据没有变化,所以我想知道是否有更有效的方法 我试图寻找一个字典/hashmap来存储IBM作为一个键和一个price/change数组作为值,但我似乎不知道如何在C中实现这一点。如果可能的话,有没有一种简单的方法来实现这一点?我正在开发一个不同的程序,我真的不想学习如何从头开始创建自己的程序(尽管如果必须的话,我会继续开发) 试试这个: 头版上的例子几乎不言自明c?的股票信息数据结构?,c,data-structures,C,Data Structures,我是C语言的新手(不到一个星期),我正试图找到一种更有效的检索数据的方法。基本上假设我有一些股票数据:股票行情、价格、变化 到目前为止,我的方法是将所有数据放在3个数组中。如果我想要IBM的价格,我搜索ticker数组并获得索引位置,然后从price数组中获得该位置。它工作得很好,但因为我做了很多查找,而且我的数据没有变化,所以我想知道是否有更有效的方法 我试图寻找一个字典/hashmap来存储IBM作为一个键和一个price/change数组作为值,但我似乎不知道如何在C中实现这一点。如果可能
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;
}
}
试试这个:
头版上的例子几乎不言自明
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;
}
}
您可以使用
struct
对相关信息进行分组。当然有一些公共域哈希表代码可以用于查找。你真的应该切换到C++。然后,您可以使用列表、映射、无序映射等。您可以使用struct
对相关信息进行分组。当然有一些公共域哈希表代码可以用于查找。你真的应该切换到C++。然后你有列表、地图、无序地图等等。非常感谢。我还在学习,我是否需要在每次添加新条目时进行malloc,或者如果我想添加ibm和价格/变更,hash_add_str会为我完成所有操作吗?以上命令是否存在?@Error\u 404我添加了更多示例。是-当您向散列添加项目时,您必须malloc
内存,当您完成后,free
。非常感谢。我还在学习,我是否需要在每次添加新条目时进行malloc,或者如果我想添加ibm和价格/变更,hash_add_str会为我完成所有操作吗?以上命令是否存在?@Error\u 404我添加了更多示例。是-向哈希中添加项时必须malloc
内存,完成后必须free
。