Что могло бы иметь лучшую производительность, вектор stl или динамический массив, который просто realloc'd каждый раз, когда я хочу что-то добавить к нему?
Векторы Stl имеют вставку в амортизированное постоянное время (поскольку перераспределение выполняется не все время, а резервирование происходит с коэффициентом 1,5 (минимум)).
Поэтому, согласно вашему описанию, векторы будут значительно быстрее, чем перераспределение все время
Будет ли использование vectors :: iterator быстрее, чем использование цикла for в массиве?
В общем случае: точно так же.Однако некоторые реализации STL генерируют проверки в режиме отладки, которые могут значительно замедлить использование контейнерных итераторов.
(обратите внимание, что большинство реализаций реализуют итераторы вектора / строки как typedef для value_type*
)
Иесли бы кто-то мог объяснить почему, это было бы здорово.