Chuyển tới nội dung chính

std::array::swap

#include <array>

void swap(array& other) noexcept;

Hoán đổi nội dung của hai mảng std::array cùng loại và cùng kích thước.

Tham số

other

  • Là một đối tượng std::array khác (tham chiếu) mà bạn muốn hoán đổi nội dung.

Giá trị trả về

Không có giá trị trả về

Đặc điểm

  1. Các phần tử của std::array hiện tại được hoán đổi với các phần tử của other. Sau khi hoán đổi, nội dung của hai mảng bị hoán đổi.
  2. Hàm được khai báo với từ khóa noexcept, đảm bảo rằng nó không ném ngoại lệ. Điều này giúp nó an toàn trong các ngữ cảnh cần độ tin cậy cao như sử dụng trong các thuật toán chuẩn của STL.
  3. Cả hai mảng phải có cùng kiểu (type) và cùng kích thước (size).
  4. Việc hoán đổi chỉ hoán đổi nội dung, không tạo hoặc hủy các phần tử, do đó rất nhanh.
  5. Ngoài phương thức swap() của std::array, bạn cũng có thể sử dụng hàm tự do std::swap (định nghĩa trong <algorithm>) để đạt cùng hiệu quả.

Ví dụ

#include <iostream>
#include <array>

int main() {
std::array<int, 3> arr1 = {1, 2, 3};
std::array<int, 3> arr2 = {4, 5, 6};

std::cout << "Trước khi swap:" << std::endl;
std::cout << "arr1: ";
for (int val : arr1) std::cout << val << " ";
std::cout << "\narr2: ";
for (int val : arr2) std::cout << val << " ";

// Hoán đổi nội dung
arr1.swap(arr2);

std::cout << "\n\nSau khi swap:" << std::endl;
std::cout << "arr1: ";
for (int val : arr1) std::cout << val << " ";
std::cout << "\narr2: ";
for (int val : arr2) std::cout << val << " ";

return 0;
}