这个初始化是否符合标准?它会创建空向量,以便我可以在以后将数据(vector<Pair<float, string> >
s)推入其中吗?
struct A
{
int a;
int b;
vector<vector<Pair<float, string> > > c;
};
A obj = {1, 2};
答案 0 :(得分:4)
如果未定义Pair,则可以将对更改为std::pair
(#include <utility>
)
在更正的程序(下面)中,允许部分启动,它打印,1,2,0,因为c
也被初始化为无元素向量。
struct A
{
int a;
int b;
vector<vector<std::pair<float, string> > > c;
};
A obj = {1, 2};
int main()
{
cout << obj.a << ", " << obj.b << ", " << obj.c.size() << endl;
return 0;
}