Я создаю приложение, которое получает обновления данных о ценах с разных валютных бирж. Теперь мне нужно выбрать наиболее эффективный контейнер. Контейнер будет использовать элементы типа Entry
:Какой контейнер STL для представления Bookbook?
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