На этом шаге мы рассмотрим различные операции, инициализирующие вектор.
В таблице 1 перечислены операции присваивания новых элементов с одновременным удалением старых. Набор функций assign() соответствует набору конструкторов класса. При присваивании могут использоваться разные источники (контейнеры, массивы, стандартный входной поток данных) - по аналогии с источниками, используемыми при вызове конструкторов (смотри 125 шаг).
Операция | Описание |
---|---|
с1 = с2 | Присваивает с1 все элементы с2 |
c.assign(n,elem) | Присваивает n копий заданного элемента |
c.assign(beg,end) | Присваивает элементы интервала [beg,end) |
c1.swap(c2) | Меняет местами содержимое c1 и с2 |
swap(c1,c2) | To же, но в форме глобальной функции |
Все операции присваивания вызывают конструктор по умолчанию, копирующий конструктор, оператор присваивания и/или деструктор типа элемента в зависимости от того, как изменяется количество элементов в контейнере. Пример:
std::list<Elem> l;
std::vector<Elem> coll;
// Занести в coll копию содержимого l
coll.assign(l.begin(),l.end());
На следующем шаге мы рассмотрим способы обращения к элементам.