2013-03-08 4 views
-1

В чем разница между копией и назначением вектора? линии 2 и 4.Какая разница между копией и назначением вектора?

1 vector<int> V1(5); 
2 vector<int> V3(V1); 
3 vector<int> V4(V1.size()); 
4 V4 = V1 ; 
+4

Копирование создает новый вектор. При назначении они оба уже существуют. –

+0

Фактическая разница –

+1

То же, что и для любого другого типа с построением и назначением копии. Кстати, вам не нужна третья строка. – juanchopanza

ответ

0

Вот Doxygen выдержка из моих СТЛИ реализации для operator=:

/* All the elements of @a x are copied, but any extra memory in 
    * @a x (for fast expansion) will not be copied. Unlike the 
    * copy constructor, the allocator object is not copied. 
    */ 

Как вы можете видеть, что есть разница, если вы используете пользовательские распределители, но и в других случаях, результат тот же.

+0

Ответы на конкретную реализацию не полезны, если вы не знаете, какой из них использует OP. –

0

В строке 2 используется конструктор копирования . В строке 4 используется назначение задания . Оба создают копии; первый создает новый объект, а второй перезаписывает существующий объект.

Смежные вопросы