C++ 中的 std::vector 容器提供了一个名为 swap 的成员函数,可以用来快速高效地交换两个 vector 的内容。该函数的工作原理是在两个容器之间交换其底层数据指针,从而避免了数据复制,提高了效率。

使用示例:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec1 = {1, 2, 3};
    std::vector<int> vec2 = {4, 5, 6};

    std::cout << 'Before swap:' << std::endl;
    std::cout << 'vec1: '; 
    for (int num : vec1) {
        std::cout << num << ' '; 
    }
    std::cout << std::endl;

    std::cout << 'vec2: '; 
    for (int num : vec2) {
        std::cout << num << ' '; 
    }
    std::cout << std::endl;

    vec1.swap(vec2);

    std::cout << 'After swap:' << std::endl;
    std::cout << 'vec1: '; 
    for (int num : vec1) {
        std::cout << num << ' '; 
    }
    std::cout << std::endl;

    std::cout << 'vec2: '; 
    for (int num : vec2) {
        std::cout << num << ' '; 
    }
    std::cout << std::endl;

    return 0;
}

输出结果:

Before swap:
vec1: 1 2 3 
vec2: 4 5 6 
After swap:
vec1: 4 5 6 
vec2: 1 2 3 

在这个例子中,我们定义了两个 vector 对象 vec1vec2,并初始化了它们的内容。然后,我们使用 swap 函数将 vec1vec2 的内容进行了交换。最后,我们打印出交换后的结果。可以看到,vec1 中的内容变成了 4、5、6,vec2 中的内容变成了 1、2、3。

注意:

swap 函数交换的是两个 vector 的内容,而不是两个 vector 对象本身。这意味着在交换操作之后,两个 vector 对象的内存地址仍然保持不变。

std::swap 函数也适用于其他容器类型,例如 std::liststd::mapstd::set

总结:

vector swap 函数是交换两个 vector 内容的便捷高效方法,尤其是在需要频繁交换容器内容的场景下,它可以显著提高程序效率。

C++ vector swap 函数:快速高效地交换容器内容

原文地址: https://www.cveoy.top/t/topic/pgld 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录