【问题标题】:Does there exist something like std::tie for std::pair?std::pair 是否存在类似 std::tie 的东西?
【发布时间】:2015-09-25 04:48:54
【问题描述】:

例如元组:

#include <tuple>        // std::tuple, std::make_tuple, std::tie

int num;
char letter;
std::tuple<int,char> num_letter;

num_letter = std::make_tuple(10, 'a');
std::tie(num, letter) = num_letter;  // unpack num_letter into num and letter

有没有与pairs等价的东西?

// ...
num_letter = std::make_pair(10, 'a');
std::pair_tie(num, letter) = num_letter;

【问题讨论】:

    标签: c++ c++11 std std-pair


    【解决方案1】:

    其实pair的代码是完全一样的,因为std::tupleoperator = with std::pair as an argument

    num_letter = std::make_pair(10, 'a');
    std::tie(num, letter) = num_letter;
    

    【讨论】:

    • @wrhall 这证明你至少应该尝试最明显的一个:)
    • 我在看别人的代码,他们正在遍历地图的元素;我希望有人会向我展示一些类似 tie 但略有不同的东西,在这种情况下使用它是有意义的。我不相信 tie 在这里真的是可读性的改进,他们正在抓取 const 引用。所以它并不完全奏效。这个问题比什么都更具探索性。
    • 不错。不幸的是,它在num_letter = std::tie(num, letter) 周围不起作用(没有从tuple&lt;...&gt;pair&lt;...&gt; 的转换)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2018-12-04
    相关资源
    最近更新 更多