Я пытаюсь оптимизировать подпрограмму C++. Основным узким местом в этой подпрограмме является push_back() вектора объектов. Вместо этого я попытался использовать deque и даже попробовал список. Но странно (и вопреки теории) реализация deque и list выполняется намного медленнее, чем векторная копия.push_back для вектора, deque и списков
Фактически даже clear() работает намного медленнее для реализации deque и list, чем векторный аналог. В этом случае реализация Vector, по-видимому, является самой быстрой, тогда как реализация списка является самой медленной.
Любые указатели?
Примечание: векторный запас() мог бы ускорить реализацию, но не может быть выполнен, так как он неизвестен по размеру.
Спасибо.
Другое примечание. Результаты аналогичны для push_back, а также вектор, являющийся самым быстрым, и список является самым медленным. – Vidya
Что вы пытаетесь оттолкнуть? Стоит ли копировать? У этого есть дорогой конструктор копирования? Опубликуйте более подробную информацию. –
Если копия стоит дорого и у вас есть функция «своп», вы можете избежать какой-либо копии (см. Мой ответ). – Rexxar