The first element of pair Arr1 is sorted with the pair elements of pair “Arr2”. In the main function, we have initialized the values for pair array “Arr1” and pair array “Arr2”. These sorted arrays and the original pairs array will be displayed by using the cout command.
std::array contains a built-in array, which can be initialized via an initializer list, which is what the inner set is. The outer set is for aggregate initialization.
Another way to initialize a pair is by using the make_pair() function. g2 = make_pair(1, 'a'); Another valid syntax to declare pair is: g2 = {1, 'a'};
Add another pair of braces.
std::array<std::pair<int, int>, 2> ids = { { { 0, 1 }, { 1, 2 } } };
std::array<T, N>
is an aggregate class containing a member of type T[N]
. Usually, you can initialise that the same way you would a plain T[N]
array, but when you're dealing with a non-aggregate element type, you may need to be more explicit.
std::array
is an aggregate. It has only one data member - an array of the specified type of the std::array
specialization. According to the C++ Standard. (8.5.1 Aggregates)
2 When an aggregate is initialized by an initializer list, as specified in 8.5.4, the elements of the initializer list are taken as initializers for the members of the aggregate, in increasing subscript or member order
So this record
std::array<std::pair<int, int>, 2> ids = { { 0, 1 }, { 1, 2 } };
has more initializers then there are data members in std::array.
The data member of std::array
is in turn an aggregate. You have to provide for it an initializer list.
So the record will look like
std::array<std::pair<int, int>, 2> ids = { { { 0, 1 }, { 1, 2 } } };
For it would be more clear you can imagine the initialization the following way
std::array<std::pair<int, int>, 2> ids = { /* an initializer for data member of the array */ };
As the data member is aggregate then you have to write
std::array<std::pair<int, int>, 2> ids = { { /* initializers for the aggregate data member*/ } };
And at last
std::array<std::pair<int, int>, 2> ids = { { { 0, 1 }, { 1, 2 } } };
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With