Почему это случайное удаление из std :: vector быстрее, чем std :: list? То, что я делаю, чтобы ускорить это, - это обмен случайным элементом с последним, а затем удаление последнего. Я бы подумал, что список будет быстрее, поскольку случайное удаление - это то, для чего он был создан.Как происходит случайное удаление из std :: vector быстрее, чем std :: list?
for(int i = 500; i < 600; i++){
swap(vector1[i], vector1[vector1.size()-1]);
vector1.pop_back();
}
for(int i = 0; i < 100; i++){
list1.pop_front();
}
Результаты (в секундах):
Vec свопа удаление: 0,00000909461232367903
Список нормального удаления: 0,00011785102105932310
Действительно. Я не вижу там никакой случайности. –
Тогда какова цель std :: list, когда с одним свопом вектор быстрее и дает произвольный доступ? –
Это зависит от того, хотите ли вы сохранить вектор в порядке или нет. –