push_back
на int
чрезвычайно эффективно.Поэтому я бы искал возможности для оптимизации в других местах.
Первое правило микрооптимизации Nemo: математика - это быстро;память медленнаяСоздание огромного вектора очень неудобно для кэша.
Например, вместо создания перестановки исходного вектора, вы можете просто вычислить, какой элемент вам нужен , как вам нужно , и затем получить доступэтот элемент непосредственно из исходного вектора?
Точно так же, вам действительно нужен вектор случайных целых чисел?Почему бы просто не генерировать случайное число , когда оно необходимо ?(Если вам нужно запомнить это на потом, тогда идите вперед и вставьте его в вектор, затем ... Но не раньше.)
push_back
на int
примерно так же быстро, как и собираетсяполучить.Держу пари, что вы едва заметите разницу, даже если избавитесь от reserve
(потому что перераспределение происходит не часто и уже будет использовать очень быструю массовую копию).Таким образом, вам нужно расширить свой кругозор, чтобы повысить производительность.