Я в настоящее время создаю приложение, используя векторы с C++.C++ push_back vs Insert vs emplace
Я знаю, как предварительная оптимизация является корнем всего зла.
Но я действительно не могу не быть любопытным.
Я добавляю части других векторов в другой вектор.
Мы скажем, вектор будет иметь размер, который никогда не изменения 300.
Так как я всегда добавляемых к концу вектора
Является ли это быстрее сделать:
a.reserve(300);
a.insert(a.end(), b.begin(), b.end());
или было бы быстрее прокрутить вектор, который я хочу добавить и добавить каждый элемент отдельно (при сохранении заранее) с помощью push_back
или emplace
. (неуверенный, что быстрее)
Кто-нибудь может мне помочь?
«Эффективный STL». Пункт 5: Предпочтительно использовать функции члена диапазона для их одноэлементных аналогов. – Cubbi
. Идём для кода более чистого кода, используйте то, что STL предоставляет вам ... не перебирайте, если вам не нужно. Повторное использование кода в большинстве случаев вызовет ручные версии простых операций, подобных этому. Эти функции были разработаны с учетом эффективности. – eazar001
«Вставить» может быть быстрее, или, может быть, примерно то же самое, но (за исключением критически плохой реализации библиотеки) никогда не будет хуже, чем цикл. –