在结构中初始化结构的向量

inf*_*inf 3 c++ struct class vector

我知道如何在结构中使用结构但是我无法工作的是结构中结构的向量.

在正常的基础上创建结构的向量例如:

vector<struct> str1(100);
Run Code Online (Sandbox Code Playgroud)

但如果我有以下代码,我该怎么做呢:

struct attribures {
    string name;
    bool value;
};

struct thing {
    string name;
    double y;
    int x;
    vector<attributes> attrib;
};
Run Code Online (Sandbox Code Playgroud)

我现在如何初始化向量的元素?我能做的一件事就是如下:

attributes a;
objec.attrib.push_back(a); // object is a struct of type thing
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案对我来说似乎并不优雅.反正有没有第一种?

编辑:抱歉混淆."100"实际上只是一个例子,在第二个例子中,它实际上也只是一个例子,它应该表明它是如何完成的,但对我来说似乎并不优雅.

And*_*nck 6

也许添加一个构造函数attributes:

struct attributes{
    attributes(const string& name, bool value) : name(name), value(value) {}
    string name;
    bool value;
};
Run Code Online (Sandbox Code Playgroud)

然后:

 object.attrib.push_back(attributes("foo", true));
Run Code Online (Sandbox Code Playgroud)