Возможный дубликат:
Когда вы предпочитаете использовать std:: list <T> вместо std::vector <T> ?
Я просто смотрел запись разговоров GoingNative'12 от Bjarne Stroustrup. И я немного смущен.
В этом разговоре он в частности обсуждает вопрос vector
vs list
и предполагает, что во многих случаях vector
быстрее, даже если вы вставляете и удаляете интенсивно в/из середины, поскольку компиляторы могут оптимизировать много вещи и подобные компактные структуры. И вывод (как я понимаю) заключается в следующем: сначала используйте vector
, а позже подумайте, нужно ли вам что-то еще. Это звучит разумно, но с учетом первого наблюдения, какие критерии я должен учитывать? Я всегда думал, что если вы вставляете/удаляете интенсивно - используйте список. Подобные вещи предлагаются в некоторых темах здесь. См
Относительная производительность std::vector против std:: list vs. std:: slist?
и
И теперь, согласно Страуструпу, я ошибся.
Конечно, я могу написать пару тестов и попытаться выяснить, что использовать в каждой конкретной ситуации, но есть ли теоретический путь?