【发布时间】:2013-03-30 22:38:09
【问题描述】:
假设我有这样的事情:
struct equity{ ///keep in hash table
long long numSharesTraded;
list<order> buyList;
list<order> sellList; //put in priority queue
};
如果我想在 buyList 或 sellList 中插入一些东西,我是否有必要检查并查看我应该添加到的特定权益在哈希表中的哪个位置?...所以我最终得到了类似:
map[i].equity.buyList.push_back(orderI'mPushing);
?
或者有没有其他方法可以让我不必每次都搜索它?据我了解,搜索特定股权的平均时间是恒定的( O(n) 最坏情况),但如果可能的话,我想摆脱这种搜索......
所以 1) 有没有一种方法可以在不搜索的情况下添加到列表中,以查看该权益是否每次都已经在哈希表中,以及 2) 如果我每次都必须搜索,这是否会导致运行时间大幅增加更长?
提前致谢
【问题讨论】:
标签: c++ hash c++11 insert complexity-theory