C 有助于定义和使用结构的向量

C++ Help to define and use a vector of vector of a struct

本文关键字:结构 向量 有助于 定义      更新时间:2023-10-16

我的目的是在C 中构建这样的数据结构:

struct callbackDataUnit {
    std::string columnName;
    std::string columnData;
};
std::vector<callbackDataUnit> callbackRow;
std::vector<callbackRow> callbackSet; <--- Invalid... It needs a type here

编译器首先抱怨callbackRow上缺少OS static。即使我在那里使用static,它仍然不会编译,因为结构自然无效

我想借此机会了解有关C 的更多信息(我是该领域的初学者),所以我的问题是:

a)为什么在这里需要static预选赛?

b)如何解决第一个变量的矩阵?我可以在这里创建3个类(CallbackDataUnitCallbackRowCallbackSet),但我觉得我会在这里缺少真正的C 电源。使callbackRow成为单个元素struct是否有意义,以便可以将其添加到callbackSet

感谢您的帮助

我认为您要定义新类型,而不是变量。

为此,您可以使用typedefusing

typedef std::vector<callbackDataUnit> callbackRow;
typedef std::vector<callbackRow> callbackSet;
using callbackRow = std::vector<callbackDataUnit>;
using callbackSet = std::vector<callbackRow>;

如果您只想定义变量,则可以使用:

std::vector<callbackDataUnit> callbackRow;
std::vector<decltype(callbackRow)> callbackSet;