[英]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.