Я поддерживаю таблицу с фиксированной длиной 10 записей. Каждый элемент представляет собой структуру как 4 поля. Будут операции вставки, обновления и удаления, заданные с помощью числовой позиции. Мне интересно, какая лучшая структура данных используется для поддержки этой таблицы информации:
-
array - insert/delete принимает линейное время из-за смещения; обновление занимает постоянное время; для указателей не используется пробел; доступ к элементу с помощью [] выполняется быстрее.
-
stl vector - insert/delete принимает линейное время из-за смещения; обновление занимает постоянное время; для указателей не используется пробел; доступ к элементу медленнее, чем массив, поскольку он является вызовом оператора [] и связанного списка.
-
stl list - вставка и удаление принимает линейное время, так как вам нужно итерации до определенной позиции перед применением insert/delete; дополнительное пространство необходимо для указателей; доступ к элементу медленнее, чем массив, поскольку это линейный обход связанного списка.
Прямо сейчас, мой выбор - использовать массив. Это оправданно? Или я что-то пропустил?
Что происходит быстрее: перемещение списка, а затем вставка node или смещение элементов в массиве для создания пустой позиции, а затем вставка элемента в эту позицию?
Каков наилучший способ измерения этой производительности? Могу ли я просто отображать временную метку до и после операций?