C++ vector swap 函数:快速高效地交换容器内容
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 对象 vec1 和 vec2,并初始化了它们的内容。然后,我们使用 swap 函数将 vec1 和 vec2 的内容进行了交换。最后,我们打印出交换后的结果。可以看到,vec1 中的内容变成了 4、5、6,vec2 中的内容变成了 1、2、3。
注意:
swap 函数交换的是两个 vector 的内容,而不是两个 vector 对象本身。这意味着在交换操作之后,两个 vector 对象的内存地址仍然保持不变。
std::swap 函数也适用于其他容器类型,例如 std::list、std::map 和 std::set。
总结:
vector swap 函数是交换两个 vector 内容的便捷高效方法,尤其是在需要频繁交换容器内容的场景下,它可以显著提高程序效率。
原文地址: https://www.cveoy.top/t/topic/pgld 著作权归作者所有。请勿转载和采集!