std::vector::vector — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
|
|
(1) | |
|
|
(2) | (до C++11) (начиная с C++11) |
|
|
(3) | (начиная с C++11) |
|
|
(4) | |
|
|
(5) | |
|
|
(5) | (начиная с C++11) |
|
|
(6) | (начиная с C++11) |
|
|
(6) | (начиная с C++11) |
|
|
(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; }