gpt4 book ai didi

c++ - 具有 2 个单元的结构与 std::pair?

转载 作者:IT老高 更新时间:2023-10-28 21:40:08 26 4
gpt4 key购买 nike

Possible Duplicate:
What is the difference between using a struct with two fields and a pair?

亲爱的,

我有一个关于pairs 和struct 的小问题。使用 std::pair 而不是具有两个单元格的结构有什么好处吗?我已经使用了一段时间,但主要问题是可读性:如果你想代表例如一个双倍(int“标签”,双倍“值”),你可以使用:

typedef std::pair<int,double> myElem;

或者一个

typedef struct {
int label;
double value;
} myElem;

如果您的语句具有“语义”意义,则代码变得更具可读性(您将始终知道 x.label 是什么。x.first 不是这种情况)。

但是,我想使用 pair 有一个优势。是性能更高还是其他?

最佳答案

就性能而言:它不太可能改变任何东西,你只是给它涂上了糖衣。

在可用性方面,我宁愿使用自定义的struct,可以这样声明(顺便说一句):

struct MyElement
{
int label;
double value;
};

我是强类型的坚定支持者,我更喜欢“真正的”结构(更好的是,类)而不是临时元组,只要它不仅仅是转瞬即逝的东西。

主要是因为:

  • 正如您所说,firstsecond 没有多大意义
  • 您不能将方法/其他字段添加到 std::pair
  • 您不能将类不变量添加到 std::pair

总而言之,我真的认为使用定制的专用结构对维护很有好处,这种结构是一刀切的元组。

关于c++ - 具有 2 个单元的结构与 std::pair?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3607352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com