vector | Вектор, содержащий объекты типа T . Стандартный конструктор v1 пуст |
vector | Вектор v2 — копия всех элементов вектора v1 |
vector | Эквивалент v2(v1) , v2 — копия элементов вектора v1 |
vector | Вектор v3 содержит n элементов со значением val |
vector | Вектор v4 содержит n экземпляров объекта типа T , инициализированного значением по умолчанию |
vector | Вектор v5 содержит столько элементов, сколько предоставлено инициализаторов; элементы инициализируются соответствующими инициализаторами |
vector | Эквивалент v5{a,b,c ... } |
При определении вектора для его элементов можно также предоставить исходное значение (или значения). Например, можно скопировать элементы из другого вектора. При копировании векторов каждый элемент нового вектора будет копией соответствующего элемента исходного. Оба вектора должны иметь тот же тип:
vector
//
vector
vector
vector
//
vector
В результате у вектора будет три элемента: первый со значением "а"
, второй — "an"
, последний — "the"
.
Как уже упоминалось, язык С++ предоставляет несколько форм инициализации (см. раздел 2.2.1). Во многих, но не во всех случаях эти формы инициализации можно использовать взаимозаменяемо. На настоящий момент приводились примеры двух форм инициализации: инициализация копией (с использованием знака =
) (см. раздел 3.2.1), когда предоставляется только один инициализатор; и внутриклассовая инициализация (см. раздел 2.6.1). Третий способ подразумевает предоставление списка значений элементов, заключенных в фигурные скобки (списочная инициализация). Нельзя предоставить список инициализаторов, используя круглые скобки.
vector
vector
Вектор можно также инициализировать набором из определенного количества элементов, обладающих указанным значением. Счетчик задает количество элементов, а за ним следует исходное значение для каждого из этих элементов.
vector
//
vector
//
Иногда инициализирующее значение можно пропустить и указать только размер. В этом случае произойдет
Если вектор хранит элементы встроенного типа, такие как int
, то инициализатором элемента будет значение 0. Если элементы имеют тип класса, такой как string
, то инициализатором элемента будет его значение по умолчанию.
vector
//
vector
//
Эта форма инициализации имеет два ограничения. Первое — некоторые классы всегда требуют явного предоставления инициализатора (см. раздел 2.2.1). Если вектор содержит объекты, тип которых не имеет значения по умолчанию, то начальное значение элемента следует предоставить самому; невозможно создать векторы таких типов, предоставив только размер.