[英]Which STL container for Orderbook representation?
我正在构建一个应用程序,它接收来自不同货币交易所的价格数据的更新。 现在我需要选择最有效的容器。 容器将使用Entry
类型的元素:
struct Entry
{
std::string exchange_name;
double price;
double amount;
}
条目必须按价格升序排列:
Ex.Name Price Amount
"A" 1.2 23
"B" 1.3 3
"A" 1.4 1.2
"C" 1.5 4
"A" 1.6 2
容器上会有很多插入和移除。 我想每秒最多 200 次是可能的。 容器内的值可能不是const
,因此可以更改特定条目的数量。
到目前为止,我得出的结论是std::list
可能是一个不错的选择,因为它允许在序列内的任何地方进行恒定时间插入和擦除操作。
std::list
是这个应用程序的最佳选择还是我应该使用另一个容器?
好吧,列表插入将是常数时间,但是您的列表应该是有序的,因此,您需要先找到合适的插入位置。 这将需要O(N)
时间! 因此,更喜欢基于有序树的容器(如std::multimap
效率更高。 插入或搜索将花费O(log(N))
时间。 价格应该是关键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.