list::list
Создает список определенного размера, или с элементами определенного значения, или с определенным распределителем, или в качестве копии какого-либо другого списка или его части.
list( ); explicit list( const Allocator& Al ); explicit list( size_type Count ); list( size_type Count, const Type& Val ); list( size_type Count, const Type& Val, const Allocator& Al ); list( const list& Right ); list( list&& Right ); list( initializer_list<Type> IList, const Allocator& Al ); template<class InputIterator> list( InputIterator First, InputIterator Last ); template<class InputIterator > list( InputIterator First, InputIterator Last, const Allocator& Al );
Параметры
Параметр |
Описание |
Al |
Класс распределителя для использования с данным объектом. |
Count |
Количество элементов в создаваемом списке. |
Val |
Значение элементов в списке. |
Right |
Список, для которого создаваемый список станет копией. |
First |
Положение первого элемента в диапазоне копируемых элементов. |
Last |
Положение первого элемента после диапазона копируемых элементов. |
IList |
Список initializer_list с элементами, которые необходимо скопировать. |
Заметки
Все конструкторы хранят объект распределителя (Al) и инициализируют список.
get_allocator возвращает копию объекта распределителя, использованного для создания списка.
Первые два конструктора указывают начальный список, второй указывает тип распределителя (Al), который следует использовать.
Третий конструктор указывает повтор определенного количества (Count) элементов со значением по умолчанию для класса Type.
Четвертый и пятый конструкторы указывают повтор (Count) элементов со значением Val.
Шестой конструктор задает копию списка Right.
Седьмой конструктор перемещает список Right.
Восьмой конструктор использует initializer_list, чтобы указать элементы.
Два следующих конструктора копируют диапазон [First, Last) списка.
Ни один из конструкторов не выполняет промежуточные перераспределения.
Пример
// list_class_list.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
int main()
{
using namespace std;
// Create an empty list c0
list <int> c0;
// Create a list c1 with 3 elements of default value 0
list <int> c1(3);
// Create a list c2 with 5 elements of value 2
list <int> c2(5, 2);
// Create a list c3 with 3 elements of value 1 and with the
// allocator of list c2
list <int> c3(3, 1, c2.get_allocator());
// Create a copy, list c4, of list c2
list <int> c4(c2);
// Create a list c5 by copying the range c4[_First, _Last)
list <int>::iterator c4_Iter = c4.begin();
c4_Iter++;
c4_Iter++;
list <int> c5(c4.begin(), c4_Iter);
// Create a list c6 by copying the range c4[_First, _Last) and with
// the allocator of list c2
c4_Iter = c4.begin();
c4_Iter++;
c4_Iter++;
c4_Iter++;
list <int> c6(c4.begin(), c4_Iter, c2.get_allocator());
cout << "c1 =";
for (auto c : c1)
cout << " " << c;
cout << endl;
cout << "c2 =";
for (auto c : c2)
cout << " " << c;
cout << endl;
cout << "c3 =";
for (auto c : c3)
cout << " " << c;
cout << endl;
cout << "c4 =";
for (auto c : c4)
cout << " " << c;
cout << endl;
cout << "c5 =";
for (auto c : c5)
cout << " " << c;
cout << endl;
cout << "c6 =";
for (auto c : c6)
cout << " " << c;
cout << endl;
// Move list c6 to list c7
list <int> c7(move(c6));
cout << "c7 =";
for (auto c : c7)
cout << " " << c;
cout << endl;
// Construct with initializer_list
list<int> c8({ 1, 2, 3, 4 });
cout << "c8 =";
for (auto c : c8)
cout << " " << c;
cout << endl;
}
Требования
Заголовок: <list>
Пространство имен: std