标准::p空气中有 2 个以上的变量

  • 本文关键字:变量 空气 标准 c++
  • 更新时间 :
  • 英文 :


pair看起来像这样:

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

如果我想要 3 个变量vector?我可以使用配对还是什么?

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

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

当然有点打字,但 IMO 比必须使用 e.secondstd::get<1>(e) 而不是在代码中随处e.msg要好得多。

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

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

如果我

理解正确,您可以使用在标题<tuple>中声明的std::tuple。例如

std::vector<std::tuple<uint64, std::string, SomeOtherType>> v;

如果你不想要 C++11,你可以使用

std::pair<uint64, std::pair<std::string, SomeOtherType> >

但这就像试图将三个值放在一对中一样错误。为什么我认为这是错误的?一对表示两个值。如果你把三个或任何其他数量的值放在一中,你就在做这样的事情。

最新更新