initializer_list class
Provides access to an array of elements in which each member is of the specified type.
Syntax
template <class Type>
class initializer_list
Parameters
Type
The element data type to be stored in the initializer_list
.
Remarks
An initializer_list
can be constructed using a braced initializer list:
initializer_list<int> i1{ 1, 2, 3, 4 };
The compiler transforms braced initializer lists with homogeneous elements into an initializer_list
whenever the function signature requires an initializer_list
. For more information about using initializer_list
, see Uniform initialization and delegating constructors
Constructors
Constructor | Description |
---|---|
initializer_list | Constructs an object of type initializer_list . |
Typedefs
Type name | Description |
---|---|
value_type |
The type of the elements in the initializer_list . |
reference |
A type that provides a reference to an element in the initializer_list . |
const_reference |
A type that provides a constant reference to an element in the initializer_list . |
size_type |
A type that represents the number of elements in the initializer_list . |
iterator |
A type that provides an iterator for the initializer_list . |
const_iterator |
A type that provides a constant iterator for the initializer_list . |
Member functions
Member function | Description |
---|---|
begin | Returns a pointer to the first element in an initializer_list . |
end | Returns a pointer to one past the last element in an initializer_list . |
size | Returns the number of elements in the initializer_list . |
Requirements
Header: <initializer_list>
Namespace: std
initializer_list::begin
Returns a pointer to the first element in an initializer_list
.
constexpr const InputIterator* begin() const noexcept;
Return value
A pointer to the first element of the initializer_list
. If the list is empty, the pointer is the same for the beginning and end of the list.
initializer_list::end
Returns a pointer to one past the last element in an initializer list
.
constexpr const InputIterator* end() const noexcept;
Return value
A pointer to one past the last element in the list. If the list is empty, it's the same as the pointer to the first element in the list.
initializer_list::initializer_list
Constructs an object of type initializer_list
.
constexpr initializer_list() noexcept;
initializer_list(const InputIterator First, const InputIterator Last);
Parameters
First
The position of the first element in the range of elements to be copied.
Last
The position of the first element beyond the range of elements to be copied.
Remarks
An initializer_list
is based on an array of objects of the specified type. Copying an initializer_list
creates a second instance of a list pointing to the same objects; the underlying objects aren't copied.
Example
// initializer_list_class.cpp
// compile with: /EHsc
#include <initializer_list>
#include <iostream>
int main()
{
using namespace std;
// Create an empty initializer_list c0
initializer_list <int> c0;
// Create an initializer_list c1 with 1 element
initializer_list <int> c1{ 3 };
// Create an initializer_list c2 with 5 elements
initializer_list <int> c2{ 5, 4, 3, 2, 1 };
// Create a copy, initializer_list c3, of initializer_list c2
initializer_list <int> c3(c2);
// Create a initializer_list c4 by copying the range c3[ first, last)
const int* c3_ptr = c3.begin();
c3_ptr++;
c3_ptr++;
initializer_list <int> c4(c3.begin(), c3_ptr);
// Move initializer_list c4 to initializer_list c5
initializer_list <int> c5(move(c4));
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 << "c5 =";
for (auto c : c5)
cout << " " << c;
cout << endl;
}
c1 = 3
c2 = 5 4 3 2 1
c3 = 5 4 3 2 1
c5 = 5 4
initializer_list::size
Returns the number of elements in the list.
constexpr size_t size() const noexcept;
Return value
The number of elements in the list.