C++ stringstream::swap() 函数



C++ 的 std::stringstream::swap() 函数用于交换两个 stringstream 对象的内容及其内部状态,包括缓冲区内容和状态标志。通过调用此函数,我们可以无需复制或重新初始化即可在两个流之间传输数据。

语法

以下是 std::stringstream::swap() 函数的语法。

void swap (stringstream& x);

参数

  • x − 指示另一个 stringstream 对象。

返回值

此函数不返回任何值。

异常

此函数从不抛出异常。

数据竞争

修改两个流对象(*this 和 x)。

示例

在下面的示例中,我们将考虑 swap() 函数的基本用法。

#include <iostream>
#include <sstream>
int main()
{
    std::stringstream a, b;
    a << "Namaste";
    b << "Vanakam";
    a.swap(b);
    std::cout << "After swapping :" << std::endl;
    std::cout << "a : " << a.str() << std::endl;
    std::cout << "b : " << b.str() << std::endl;
    return 0;
}

输出

以上代码的输出如下:

After swapping :
a : Vanakam
b : Namaste

示例

考虑以下示例,我们将与空流交换。

#include <iostream>
#include <sstream>
int main()
{
    std::stringstream x, y;
    x << "TutorialsPoint";
    x.swap(y);
    std::cout << "After swapping :" << std::endl;
    std::cout << "x : " << x.str() << std::endl;
    std::cout << "y : " << y.str() << std::endl;
    return 0;
}

输出

以上代码的输出如下:

After swapping :
x: 
y: TutorialsPoint

示例

让我们来看下面的示例,我们将使用具有相同流的 swap() 函数。

#include <iostream>
#include <sstream>
int main()
{
    std::stringstream x;
    std::stringstream y;
    x << "Hi";
    y << "Hi";
    x.swap(y);
    std::cout << "After swapping :" << std::endl;
    std::cout << "x : " << x.str() << std::endl;
    std::cout << "y : " << y.str() << std::endl;
    return 0;
}

输出

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

After swapping :
x : Hi
y : Hi
istream.htm
广告