C++ 帮助定义和使用结构向量的向量

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

我的意图是用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;