C++ Array::swap() 函数



C++ 的 std::array::swap() 函数用于交换两个相同类型和大小的数组对象的内容。它高效地交换两个数组之间的元素,无需显式地逐个元素复制。它确保两个数组在交换后都保持其大小和类型的完整性。

语法

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

void swap (array& x) noexcept(noexcept(swap(declval<value_type&>(),declval<value_type&>())));

参数

  • x − 指示相同类型的数组容器。

返回值

它不返回任何值。

异常

时间复杂度

线性,即 O(n)

示例 1

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

#include <iostream>
#include <array>
int main() {
   std::array < int, 3 > x = {1,3,5};
   std::array < int, 3 > y = {2,4,6};
   x.swap(y);
   std::cout << "\n\nAfter swap:" << std::endl;
   std::cout << "x: ";
   for (int num: x) std::cout << num << " ";
   std::cout << "\ny: ";
   for (int num: y) std::cout << num << " ";
   return 0;
}

输出

上述代码的输出如下:

After swap:
x: 2 4 6 
y: 1 3 5

示例 2

考虑下面的示例,我们将交换不同大小的数组并观察输出。

#include <iostream>
#include <array>
int main() {
   std::array < int, 2 > x = {1,2};
   std::array < int, 3 > y = {4,5,6};
   x.swap(y);
   return 0;
}

输出

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

main.cpp: In function 'int main()':
main.cpp:7:12: error: cannot convert 'std::array<int, 3>' to 'std::array<int, 2>&'
    7 |     x.swap(y);
      |            ^
      |            |
      |            std::array<int, 3>

示例 3

让我们看下面的示例,我们将交换双精度值的数组。

#include <iostream>
#include <array>
int main() {
   std::array < double, 2 > x = {1.2,3.4};
   std::array < double, 2 > y = {0.3,0.6};
   x.swap(y);
   std::cout << "x after swap: ";
   for (double num: x) std::cout << num << " ";
   std::cout << "\ny after swap: ";
   for (double num: y) std::cout << num << " ";
   return 0;
}

输出

以下是上述代码的输出:

x after swap: 0.3 0.6 
y after swap: 1.2 3.4 
array.htm
广告
© . All rights reserved.