c++ - 初始化结构中结构的 vector

标签 c++ class vector struct

我知道如何让结构中的结构工作,但我无法工作的是结构中结构的 vector 。

在正常基础上创建一个结构的 vector 例如:

vector<struct> str1(100);

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

struct attribures {
    string name;
    bool value;
};

struct thing {
    string name;
    double y;
    int x;
    vector<attributes> attrib;
};

我现在如何初始化 vector 的元素?我可以做的一件事如下:

attributes a;
objec.attrib.push_back(a); // object is a struct of type thing

但是这个解决方案对我来说似乎并不那么优雅。无论如何,还有更多的是第一种吗?

编辑:很抱歉造成混淆。 “100”实际上只是一个例子,在第二个例子中它实际上也只是一个例子,它应该展示它是如何完成的,但对我来说似乎不是很优雅。

最佳答案

也许向属性添加一个构造函数:

struct attributes{
    attributes(const string& name, bool value) : name(name), value(value) {}
    string name;
    bool value;
};

然后:

 object.attrib.push_back(attributes("foo", true));

关于c++ - 初始化结构中结构的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7146297/

相关文章:

c++ - 使用静态链接启动 std::thread 会导致段错误

Java:如何通过保存在变量中的名称访问类?

c++ - 修改元组 vector 中的元组 C++

c++ - BoldDays 与 TMonthCalendar

c++ - 从帧缓冲区 GLSL 读取到 OpenCV

C++ Linux : Declaring an array in a class causes segmentation fault

c++ - 如何从 C++ 对象中获取类名?

class - 我可以为 Haxe 中的类定义隐式转换行为吗?

c - 从 C 中的数组中查找不同的数字

c++ - 如何在不调用复制构造函数的情况下使用类初始化 STL vector/列表