用大括号进行C ++部分初始化

时间:2014-09-17 10:23:05

标签: c++

这个初始化是否符合标准?它会创建空向量,以便我可以在以后将数据(vector<Pair<float, string> > s)推入其中吗?

struct A
{
    int a;
    int b;
    vector<vector<Pair<float, string> > > c;
};

A obj = {1, 2};

1 个答案:

答案 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;
}