std::forward_list::forward_list
Материал из cppreference.com
< cpp | container | forward list
explicit forward_list( const Allocator& alloc = Allocator() ); |
(1) | (начиная с C++11) |
forward_list( size_type count, const T& value, |
(2) | (начиная с C++11) |
explicit forward_list( size_type count ); |
(3) | (начиная с C++11) |
template< class InputIt > forward_list( InputIt first, InputIt last, |
(4) | (начиная с C++11) |
forward_list( const forward_list& other ); |
(5) | (начиная с C++11) |
forward_list( const forward_list& other, const Allocator& alloc ); |
(5) | (начиная с C++11) |
forward_list( forward_list&& other ) |
(6) | (начиная с C++11) |
forward_list( forward_list&& other, const Allocator& alloc ); |
(6) | (начиная с C++11) |
forward_list( std::initializer_list<T> init, 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 <forward_list> #include <string> int main() { // c++11 initializer list syntax: std::forward_list<std::string> words1 {"the", "frogurt", "is", "also", "cursed"}; // words2 == words1 std::forward_list<std::string> words2(words1.begin(), words1.end()); // words3 == words1 std::forward_list<std::string> words3(words1); // words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"} std::forward_list<std::string> words4(5, "Mo"); return 0; }
[править] См. также
Задаёт значения в контейнере (public функция-член) | |
Задаёт значения в контейнере (public функция-член) |