我正在構建一個應用程序,它接收來自不同貨幣兌換處的價格數據的更新。現在我需要選擇最高效的容器。容器將用於Entry
類型的元素:哪個STL容器用於Orderbook表示?
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
可能是一個不錯的選擇,因爲它allows constant time insert and erase operations anywhere within the sequence。
是std::list
這個應用程序的最佳選擇還是我應該使用另一個容器?
最好的方法是找到潛在的最佳候選人(std :: list可能是好的),並衡量實際的性能,看它是否符合你的需求。 – roalz
如何確保在列表中訂購?在你的情況下插入最好是O(log(n)),因爲你需要找到在列表中插入的位置。 –
http://john-ahlgren.blogspot.com/2013/10/stl-container-performance.html – jamek