В чем разница между копией и назначением вектора? линии 2 и 4.Какая разница между копией и назначением вектора?
1 vector<int> V1(5);
2 vector<int> V3(V1);
3 vector<int> V4(V1.size());
4 V4 = V1 ;
В чем разница между копией и назначением вектора? линии 2 и 4.Какая разница между копией и назначением вектора?
1 vector<int> V1(5);
2 vector<int> V3(V1);
3 vector<int> V4(V1.size());
4 V4 = V1 ;
Вот 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.
*/
Как вы можете видеть, что есть разница, если вы используете пользовательские распределители, но и в других случаях, результат тот же.
Ответы на конкретную реализацию не полезны, если вы не знаете, какой из них использует OP. –
В строке 2 используется конструктор копирования . В строке 4 используется назначение задания . Оба создают копии; первый создает новый объект, а второй перезаписывает существующий объект.
Копирование создает новый вектор. При назначении они оба уже существуют. –
Фактическая разница –
То же, что и для любого другого типа с построением и назначением копии. Кстати, вам не нужна третья строка. – juanchopanza