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
- 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. - 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. - Cả hai mảng phải có cùng kiểu (type) và cùng kích thước (size).
- 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.
- Ngoài phương thức
swap()
của std::array, bạn cũng có thể sử dụng hàm tự dostd::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;
}