I have a code, I can not understand the {} used for create array object.
#include <iostream>
#include <array>
using namespace std;
int main ()
{
array<int, 3> a1{1, 2, 3};
array<int, 3> a2{{1, 2, 3}};
array<pair<int, int>, 3> a3{{1, 2}, {3, 4}, {5, 6}}; // can not compile
array<pair<int, int>, 3> a4{{{1, 2}, {3, 4}, {5, 6}}};
return 0;
}
compile
a3 can not compiled,
error: too many initializers for 'std::array<std::pair<int, int>, 3>'
8 | array<pair<int, int>, 3> a3{{1, 2}, {3, 4}, {5, 6}}; // can not compile
My understanding
a1 {1,2,3} I think it is using the initializer list {1,2,3} to create array.
a2 I can not understand the nested {{...}} meaning, It looks strange.
a3, I think it can compile, I think {{1, 2}, {3, 4}, {5, 6}} is a initializer list, and it can used to create array.
a4 I can not understand the nested {{...}} meaning, It looks strange.
Do I understand correct?
Cound you please explain the meaning of the a2,a3,a4? Thanks for your time.