【问题标题】:Is there any performance loss for tuple with only 2 elements?只有 2 个元素的元组是否有任何性能损失?
【发布时间】:2013-03-27 19:36:08
【问题描述】:

与pair相比,只有2个元素的元组有性能损失吗?

【问题讨论】:

  • 当你分析它时,你得到了什么结果?
  • 对其进行基准测试。使用现代编译器应该完全相同。但是,如果您想 100% 确定,请进行测试。
  • 为工作使用正确的工具。 Pair 用于将某些东西映射到其他东西;例如用于std::map。元组用于保存一组完全不相关的值,例如这样一个函数就可以返回多个东西。就性能而言,它们应该基本相同。

标签: c++ tuples std-pair


【解决方案1】:

我非常怀疑您正在设计的任何系统都会停止运行,因为您选择使用tuple 而不是pair。事实上,如果编译器为一个 2 值元组生成的东西比它为一对(几乎)等价的对生成的东西多或少,我会感到非常惊讶。

我可以向您保证,如果您的应用程序停止运行并且您的 PC 开始崩溃 - 这不会是由于您选择了 tuple over pair,反之亦然。

【讨论】:

    【解决方案2】:

    您必须对其进行概要分析。此外,为什么要冒着延长使用仅与两个元素一起使用的风险的风险。个人喜好是不够的。 Pair 很容易与 Maps 一起使用,而 tuple 是它自己的集合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      相关资源
      最近更新 更多