c++ - std::pair 中有超过 2 个变量

标签 c++

看起来像这样:

std::vector<std::pair<uint64 /*id*/, std::string /*message*/>

如果我想要 vector 中的 3 个变量?我可以使用 pair 还是什么?

最佳答案

在 C++ 中,有时我发现定义琐碎的全公共(public)数据类非常有用,例如

struct Event {
    int id = 0;
    std::string msg = "";
    double time = 0.;
};

当然需要打字,但在我看来比使用 e.second 更好或 std::get<1>(e)而不是 e.msg代码中无处不在。

写作一次,阅读多次。以增加阅读/理解时间为代价来节省写作时间是一个非常糟糕的主意。

这种方法的缺点是您无法访问元程序中结构的第 n 个成员,但是由于许多其他原因,C++ 元编程无论如何都非常薄弱,所以如果您真的需要非平凡的元代码,我' d 建议退出 C++,使用以合适的语言编写的外部 C++ 代码生成器,而不是模板技巧和技巧。

关于c++ - std::pair 中有超过 2 个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593856/

相关文章:

c++ - 指针有拷贝构造函数吗?

c++ - 帮助?为什么输出是这样的?

c++ - 如何在 codeBlocks 项目中链接 .o 文件?

c++ - boost::thread:如何启动所有线程,但一次最多只能运行 n 个线程?

C++ 为什么我需要文件的两端?

c++ - C++ 'class'尚未声明-将类传递给类

c++ - 在 Windows 上打开并获取现有内存映射文件的确切大小

c++ - 线程安全地构造 C++ 对象(MFC CRecordset)

c++ - 如何用android ndk 20编译jrtplib

c++ - undefined reference 错误对我没有任何意义