◐ Shell
clean mode source ↗

std::vector::vector — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

explicit vector( const Allocator& alloc = Allocator() );

(1)

explicit vector( size_type count, {{#pad:|6}} const T& value = T(), {{#pad:|6}} const Allocator& alloc = Allocator()); vector( size_type count, {{#pad:|6}} const T& value, {{#pad:|6}} const Allocator& alloc = Allocator());

(2) (до C++11)

(начиная с C++11)

explicit vector( size_type count );

(3) (начиная с C++11)

template< class InputIt > vector( InputIt first, InputIt last, {{#pad:|6}} const Allocator& alloc = Allocator() );

(4)

vector( const vector& other );

(5)

vector( const vector& other, const Allocator& alloc );

(5) (начиная с C++11)

vector( vector&& other )

(6) (начиная с C++11)

vector( vector&& other, const Allocator& alloc );

(6) (начиная с C++11)

vector( std::initializer_list<T> init, {{#pad:|6}} const Allocator& alloc = Allocator() );

(7) (начиная с C++11)

Создает новый контейнер из разнообразных источников данных, возможно, используя предоставленный пользователем аллокатор alloc.

1) Конструктор по умолчанию. Создает пустой контейнер.

2) Создает контейнер с count копиями элемента со значением value.

3) Создает контейнер с count экземплярами T, инициализированными конструктором по-умолчанию. При этом копирования не происходит.

4) Создает контейнер с содержимым диапазона [first, last).

5) Конструктор копирования. Создает контейнер с копией содержимого other. Если alloc не задан, аллокатор будет получен вызовом std::allocator_traits<allocator_type>::select_on_copy_construction(other).

6) Конструктор перемещения. Создает контейнер с содержимым other путём перемещения данных. Если alloc не задан, аллокатор будет получен перемещением аллокатора other.

7) Создает контейнер с содержимым списка инициализации init.

Параметры

alloc Аллокатор, используемый для всех выделений памяти в контейнере.
count Размер контейнера.
value Значение, которым будут инициализированы элементы контейнера.
first, last Диапазон, из которого копируются элементы.
other другой контейнер, который будет использоваться в качестве источника для инициализации элементов контейнера.
init список инициализации элементов контейнера.
Требования к типам
-InputIt должен соответствовать требованиям InputIterator.

Сложность

1) Константа.

2-3) Линейная относительно count.

4) Линейная относительно расстояния между first и last.

5) Линейная относительно размера other

6) Константа. Если alloc задан и alloc != other.get_allocator(), то линейная.

7) Линейная относительно размера init

Пример

#include <vector>
#include <string>

int main()
{
    // c++11 initializer list syntax:
    std::vector<std::string> words1 {"the", "frogurt", "is", "also", "cursed"};

    // words2 == words1
    std::vector<std::string> words2(words1.begin(), words1.end());

    // words3 == words1
    std::vector<std::string> words3(words1);

    // words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
    std::vector<std::string> words4(5, "Mo");

    return 0;
}

См. также