std::vector::vector
Материал из cppreference.com
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) Линейная относительно размера
other6) Константа. Если
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;
}
См. также
| присваивает значения контейнеру (public функция-элемент) | |
| присваивает значения контейнеру (public функция-элемент) |