Пространства имён
Варианты
Действия

std::list::list

Материал из cppreference.com
< cpp‎ | container‎ | list
explicit list( const Allocator& alloc = Allocator() );
(1)
explicit list( size_type count,

               const T& value = T(),
               const Allocator& alloc = Allocator());
         list( size_type count,
               const T& value,

               const Allocator& alloc = Allocator());
(2) (до C++11)


(начиная с C++11)
explicit list( size_type count );
(3) (начиная с C++11)
template< class InputIt >

list( InputIt first, InputIt last,

      const Allocator& alloc = Allocator() );
(4)
list( const list& other );
(5)
list( const list& other, const Allocator& alloc );
(5) (начиная с C++11)
list( list&& other )
(6) (начиная с C++11)
list( list&& other, const Allocator& alloc );
(6) (начиная с C++11)
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 <list>
#include <string>
 
int main()
{
    // c++11 initializer list syntax:
    std::list<std::string> words1 {"the", "frogurt", "is", "also", "cursed"};
 
    // words2 == words1
    std::list<std::string> words2(words1.begin(), words1.end());
 
    // words3 == words1
    std::list<std::string> words3(words1);
 
    // words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
    std::list<std::string> words4(5, "Mo");
 
    return 0;
}


[править] См. также

Задаёт значения в контейнере
(public функция-член) [edit]
Задаёт значения в контейнере
(public функция-член) [edit]