C ++ STL | vector :: swap()函数与示例

C ++ STL vector :: swap()函数

vector :: swap()函数用于交换/交换相同类型的两个向量的内容,它们的大小可能不同。

vector1的内容与vector2的内容交换。向量必须具有相同的类型,即两个向量均为int,string,long等类型。

两个矢量都必须具有相同的大小是不必要的,即,两个矢量的大小可以彼此不同。

注意:调用此函数后,两个容器/向量均被修改。

vector :: swap()函数的语法

    vector1.swap(vector2);

参数: vector2 –与另一个向量我们必须交换第一个向量vector1的内容。

返回值: void –不返回任何内容。

时间复杂度:O(1),即恒定阶数

示例

    Input:
    vector<int> vector1{ 1, 2, 3, 4, 5 };
    vector<int> vector2{ 6, 7, 8, 9, 10 };

    Function call:
    vector1.swap(vector2);

    Output:
    Vector1: 1 2 3 4 5
    Vector2: 6 7 8 9 10 
    After swapping...
    Vector1: 6 7 8 9 10 
    Vector2: 1 2 3 4 5

C ++程序演示vector :: swap()函数的示例

#include <iostream>
#include <vector>
using namespace std;

int main(){

    vector<int> vector1{ 1, 2, 3, 4, 5 };
    vector<int> vector2{ 6, 7, 8, 9, 10 };

    //交换vector-1和vector-2之前
    cout << "Vector 1" << endl;
    for (auto i : vector1)
        cout << i << " ";

    cout << "\n";

    cout << "Vector 2" << endl;
    for (auto i : vector2)
        cout << i << " ";
    cout << "\n";

    //交换vector-1和vector-2-
    vector1.swap(vector2);

    //交换vector-1和vector-2之后
    cout << "Vector 1" << endl;
    for (auto i : vector1)
        cout << i << " ";

    cout << "\n";

    cout << "Vector 2" << endl;
    for (auto i : vector2)
        cout << i << " ";

    return 0;
}

输出结果

Vector 1 
1 2 3 4 5
Vector 2 
6 7 8 9 10 
Vector 1 
6 7 8 9 10 
Vector 2 
1 2 3 4 5