pair看起来像这样:
std::vector<std::pair<uint64 /*id*/, std::string /*message*/>
Run Code Online (Sandbox Code Playgroud)
如果我想要 3 个变量vector?我可以使用配对还是什么?
在 C++ 中,有时我发现定义简单的全公共数据类非常有用,例如
struct Event {
int id = 0;
std::string msg = "";
double time = 0.;
};
Run Code Online (Sandbox Code Playgroud)
当然需要一点打字,但在我看来,这比在代码中的任何地方都使用e.secondor更好。std::get<1>(e)e.msg
写一次,读多次。以增加阅读/理解时间为代价来节省写作时间是一个非常糟糕的主意。
这种方法的缺点是您无法访问元程序中结构的第 n 个成员,但由于许多其他原因,C++ 元编程无论如何都非常弱,因此如果您确实需要拥有重要的元代码,我建议移动脱离 C++ 并使用以合适的语言编写的外部 C++ 代码生成器,而不是模板技巧和 hack。