使用带有两个字段和一对的结构有什么区别?

Tam*_*man 31 c++ struct std std-pair

使用具有两个字段和一对的结构之间的内存分配和效率有什么区别?

Ash*_*ain 23

std::pair提供预先编写的构造函数和比较运算符.这也允许它们存储在像std :: map这样的容器中,而不需要编写,例如,复制构造函数或严格的弱顺序operator <(例如,必需std::map).如果你不写它们就不会犯错误(记住严格的弱顺序是如何工作的?)所以它的使用更加可靠std::pair.

  • 我认为值得一提的是“std::make_pair()”,它在许多情况下相当方便,尤其是与“auto”的新含义相关的时候。 (2认同)

Mat*_* M. 20

std::pair 附带了许多构造函数和运算符.

一个struct允许命名字段(除firstsecond),并已准备好随时进行扩展.

喜欢什么struct时候可以.它可能涉及一些开销,但肯定更容易维护.

  • +1维护评论.我与一群来自新泽西州的工程师一起工作,他们尝试用STL做所有事情(我的意思是一切),而不是在设计指示时创建适当的类/结构,他们使用了STL容器.代码中充斥着"if(route.first.second [*iter] .first){...}".啊! (21认同)

j_r*_*ker 7

在内存分配和效率方面,没有区别 - 因为这正是a std::pair.

  • 没问题,但是如果那是你感兴趣的话,那么问一下比较易用性会更有意义.Naveen和我都回答了​​所说的问题.(不抱怨,只是说......) (2认同)