これは、繰り返し言及する必要なく、それを行いますA
:
array<std::vector<A>, 3> v{{ {1}, {2,3,4}, {} }};
コンストラクターが 2 つの引数を取る場合は、中括弧内に記述します。
array<std::vector<A2>, 3> v2{{ {{1,2}}, {{2,3},{4,5},{8,9}}, {} }};
コンストラクターが明示的である場合にも機能する次の構文をお勧めします。
std::array<std::vector<A2>, 3> v2{{ {A2{1,2}}, {A2{2,3},A2{4,5},A2{8,9}}, {} }};
完全な例:
#include <array>
#include <vector>
#include <iostream>
struct A2 {
A2(int k,int j) : mk(k),mj(j) {}
int mk;
int mj;
};
int main (){
std::array<std::vector<A2>, 3> v2{{ {{1,2}}, {{2,3},{4,5},{8,9}}, {} }};
int i=0;
for (auto &a : v2){
std::cout << "... " << i++ <<std::endl;
for (auto &b : a){
std::cout << b.mk << " " <<b.mj <<std::endl;
}
}
}