std ::list vs std ::vector итерация

Говорят, что итерация по вектору (, как и при чтении всего его элемента ), выполняется быстрее, чем итерация по списку, из-за оптимизированного кеша.

Есть ли в Интернете какой-либо ресурс, который мог бы количественно оценить, насколько это влияет на производительность?

Кроме того, было бы лучше использовать настраиваемый связанный список, элементы которого были бы предварительно размещены так, чтобы они были последовательными в памяти?

Идея заключается в том, что я хочу хранить элементы в определенном порядке, который не изменится. Мне все еще нужно иметь возможность быстро вставлять некоторые во время выполнения в середине, но большинство из них все равно будут последовательными, потому что порядок не изменится.

Влияет ли на кеш тот факт, что элементы расположены последовательно, или то, что я по-прежнему буду вызывать list_element->nextвместо ++list_element, ничего не улучшает?

11
задан Arthur 26 April 2012 в 11:49
поделиться