C++ Tuple::operator=() 函数



C++ 的std::tuple::operator=() 函数用于将一个元组的值赋给另一个相同类型的元组。它允许高效地复制元组内容,确保每个元素都分配到目标元组中的对应元素。

通过使用此函数,我们可以轻松地管理和操作元组。

语法

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

tuple& operator= (const tuple& tpl);tuple& operator= (tuple&& tpl) noexcept;

参数

  • tpl - 它表示另一个具有相同数量元素的元组对象

返回值

此函数不返回任何值。

示例

让我们看下面的示例,我们将把一个元组的内容赋值给另一个元组。

#include <iostream>
#include <tuple>
int main() {
    std::tuple<std::string, double> x("Welcome", 0.01);
    std::tuple<std::string, double> y;
    y = x; 
    std::cout << std::get<0>(y) << " " << std::get<1>(y) << " " <<std::endl;
    return 0;
}

输出

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

Welcome 0.01 

示例

考虑另一种情况,我们将把一个元组的内容赋值给另一个数据类型不同的元组。

#include <iostream>
#include <tuple>
int main() {
    std::tuple<int, std::string> x(1, "TutorialsPoint");
    std::tuple<double, const char*> y;
    std::get<0>(y) = static_cast<double>(std::get<0>(x));
    std::get<1>(y) = std::get<1>(x).c_str(); 
    std::cout << std::get<0>(y) << " " << std::get<1>(y) << std::endl;
    return 0;
}

输出

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

1 TutorialsPoint

示例

在下面的示例中,我们将使用 operator=() 函数将元组赋值给自己,并观察输出。

#include <iostream>
#include <tuple>
int main()
{
    std::tuple<std::string, double> x("TP", 1.12);
    x = x;
    std::cout << std::get<0>(x) << " " << std::get<1>(x) << " " << std::endl;
    return 0;
}

输出

以下是以上代码的输出:

TP 1.12

示例

以下是一个示例,我们将使用 operator=() 函数以及 tie。

#include <iostream>
#include <tuple>
int main()
{
    int x, y, z;
    std::tuple<int, double, char> a(12, 0.01, 'c');
    std::tie(x, y, z) = a;
    std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
    return 0;
}

输出

以上代码的输出如下:

x: 12, y: 0, z: 99
广告