C++ Tuple::tie() 函数



C++ 的std::tuple::tie()函数用于帮助将多个变量绑定到元组的元素。本质上,它允许将元组值直接解包到指定的变量中。它主要用于您希望将元组的元素分解成单独的变量以进行进一步操作的场景。

tie() 函数可以与其他操作(如比较和排序)结合使用。

语法

以下是 std::tuple::tie() 函数的语法。

tie( Types&... args ) noexcept;

参数

  • args - 它包含构造的元组应包含的元素列表。

示例

让我们看下面的例子,我们将使用 tie() 和 make_tuple() 交换两个变量的值。

#include <iostream>
#include <tuple>
using namespace std;
int main()
{
    int x = 11, y = 111;
    tie(x, y) = make_tuple(y, x);
    cout << "x: " << x << ", y: " << y << endl;
    return 0;
}

输出

让我们编译并运行上面的程序,这将产生以下结果:

x: 111, y: 11

示例

考虑另一种情况,我们将使用 tie() 函数将元组数据解包到单独的变量中。

#include <iostream>
#include <tuple>
using namespace std;
int main()
{
    tuple<float, string> data = make_tuple(0.01, "Welcome");
    float x;
    string y;
    tie(x,y) = data;
    cout << "x: " << x << ", y: " << y <<endl;
    return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

x: 0.01, y: Welcome

示例

在下面的示例中,元组数据的第二个元素仅解包到变量中,而其他元素被忽略。

#include <iostream>
#include <tuple>
using namespace std;
int main()
{
    tuple<int, string> data = make_tuple(42, "TutorialsPoint");
    string x;
    tie(ignore, x) = data;
    cout << "x: " << x << endl;
    return 0;
}

输出

以下是上述代码的输出:

x: TutorialsPoint
广告