Очистка вектора или определение нового вектора, какой из них быстрееC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Очистка вектора или определение нового вектора, какой из них быстрее

Сообщение Anonymous »

Какой метод быстрее и требует меньше затрат?

Метод 1:

Код: Выделить всё

void foo() {
std::vector< int > aVector;
for ( int i = 0; i < 1000000; ++i ) {
aVector.clear();
aVector.push_back( i );
}
}
Метод 2:

Код: Выделить всё

void foo() {
for ( int i = 0; i < 1000000; ++i ) {
std::vector< int > aVector;
aVector.push_back( i );
}
}
Вы можете сказать, что пример бессмысленен! Но это всего лишь фрагмент моего большого кода. Короче говоря, я хочу знать, не лучше ли

"создать вектор один раз и очистить его для использования"

или

"каждый раз создавать новый вектор"

ОБНОВЛЕНИЕ

Спасибо за предложения, я протестировал оба варианта и вот результаты

Метод 1:

Код: Выделить всё

 $ time ./test1

real    0m0.044s
user    0m0.042s
sys     0m0.002s
Метод 2:

Код: Выделить всё

$ time ./test2

real    0m0.601s
user    0m0.599s
sys     0m0.002s
Лучше очистить вектор. Возможно, это поможет кому-то еще :)

Подробнее здесь: https://stackoverflow.com/questions/191 ... -is-faster
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»