std::array trong C++ là gì?

Std Array Trong C La Gi



C++ cung cấp nhiều cấu trúc dữ liệu để lưu trữ và thao tác với các tập hợp phần tử. Một cấu trúc dữ liệu như vậy là std::mảng , được giới thiệu trong thư viện chuẩn C++11. Thông qua bài viết này, bạn sẽ tìm hiểu về std::array, cú pháp của nó, ví dụ và các ưu điểm của nó trong C++.

std::array trong C++ là gì

Trong C++, một thùng chứa được gọi là std::mảng được sử dụng để giữ một số lượng cố định các mục cùng loại dữ liệu. Các std::mảng container cung cấp giải pháp thay thế cho mảng kiểu C vì nó an toàn hơn, dễ sử dụng hơn và có hiệu suất tốt hơn.

Lớp, là một thành phần của thư viện chuẩn của C++, cung cấp một cách tiếp cận thực tế và hiệu quả để lưu trữ và truy cập các phần tử có cùng kiểu dữ liệu. Bởi vì kích thước của std::mảng được biết đến tại thời điểm biên dịch, chi phí thời gian chạy của quy mô động sẽ giảm. Kích thước của mảng được đặt theo tham số mẫu và các mục của std::mảng được giữ trong bộ nhớ liền kề.







Khai báo std::array trong C++

Bạn có thể khai báo std::mảng giống:



tiêu chuẩn :: mảng < int , 4 > mảng ;

Cú pháp trên khai báo một mảng có tên mảng với kích thước cố định gồm 4 phần tử, trong đó mỗi phần tử có kiểu int.



Ví dụ về std::array

Ví dụ 1: Sau đây là một ví dụ đơn giản để khởi tạo một std::mảng trong C++:





#bao gồm

#include

int chủ yếu ( ) {

tiêu chuẩn :: mảng < int , 4 > mảng = { 4 , 6 , 2 , 1 } ;

( int Tôi = 0 ; Tôi < mảng. kích cỡ ( ) ; Tôi ++ ) {

tiêu chuẩn :: cout << mảng [ Tôi ] << '' ;

}

tiêu chuẩn :: cout << tiêu chuẩn :: kết thúc ;

trở lại 0 ;

}

đầu ra



Ví dụ 2: Bạn cũng có thể dùng std::mảng để truy cập các phần tử trong một mảng. Mã được đưa ra dưới đây:

#bao gồm

#include

int chủ yếu ( ) {

tiêu chuẩn :: mảng < int , 3 > mảng = { 1 , 2 , 3 } ;

tiêu chuẩn :: cout << 'Yếu tố đầu tiên là' << mảng [ 0 ] << tiêu chuẩn :: kết thúc ;

tiêu chuẩn :: cout << 'Yếu tố thứ hai là' << mảng. Tại ( 1 ) << tiêu chuẩn :: kết thúc ;

tiêu chuẩn :: cout << 'Yếu tố thứ ba là' << mảng. mặt sau ( ) << tiêu chuẩn :: kết thúc ;

trở lại 0 ;

}

đầu ra

Ví dụ 3: Ví dụ sau minh họa việc in một phần tử từ một mảng tại một vị trí cụ thể bằng cách sử dụng std::mảng trong C++.

#include

#bao gồm

int chủ yếu ( )

{

tiêu chuẩn :: mảng < int , 4 > mảng = { 4 , 6 , 2 , 1 } ;

tiêu chuẩn :: cout << mảng [ 3 ] << tiêu chuẩn :: kết thúc ;

trở lại 0 ;

}

đầu ra

Ưu điểm của std::array trong C++

Không giống như mảng truyền thống trong C++, std::mảng cung cấp một loạt các tính năng.

1: Cú pháp trực quan

std::mảng có cú pháp khởi tạo trực quan hơn và có thể được khởi tạo bằng danh sách trình khởi tạo. Điều này cung cấp một cách ngắn gọn và dễ đọc hơn để khởi tạo mảng.

2: Được thông qua dưới dạng đối số

std::mảng có thể được truyền dưới dạng đối số cho các hàm và cũng có thể trả lại chúng từ các hàm.

3: Quản lý bộ nhớ

Một trong những lợi ích chính của việc sử dụng std::mảng là nó cung cấp khả năng quản lý bộ nhớ dễ dàng và hiệu quả. Điều này có nghĩa là không cần cấp phát hoặc giải phóng bộ nhớ thủ công.

4: Kiểm tra ràng buộc tự động

thực tế là std::mảng cung cấp kiểm tra giới hạn tự động trên các mảng kiểu C là một trong những lợi thế chính của nó. Điều này có nghĩa là nếu chương trình cố gắng truy cập một phần tử bên ngoài phạm vi được xác định của mảng, trình biên dịch sẽ báo lỗi. Tràn bộ đệm, lỗi phân đoạn và rò rỉ bộ nhớ chỉ là một số sự cố lập trình thường gặp mà việc kiểm tra ràng buộc có thể giúp bạn tránh được.

5: Cung cấp các chức năng hữu ích

std::mảng cung cấp một số chức năng tiện dụng, chẳng hạn như trình vòng lặp, size(), front(), back(), fill() và at(), đây là một lợi thế khác. Các hàm này giúp thao tác với các phần tử mảng dễ dàng hơn mà không cần mã phức tạp và dễ bị lỗi. Ví dụ, các trình lặp giúp việc điều hướng giữa các phần tử của mảng trở nên đơn giản và phương thức fill() cho phép bạn cung cấp một giá trị duy nhất cho toàn bộ tập hợp phần tử của mảng.

Phần kết luận

Trong C++, các std::mảng class cung cấp một cách thực tế để làm việc với các mảng có kích thước cố định, cùng với một số chức năng hữu ích và các ưu điểm của loại và phạm vi an toàn. Để khởi tạo và kiểm tra giới hạn, nó cung cấp một cú pháp rõ ràng hơn, dễ hiểu hơn, có thể giúp tránh được nhiều lỗi lập trình điển hình. Đối với phần lớn các tình huống khi phải sử dụng các mảng có kích thước cố định, nên sử dụng std::array vì nó cung cấp một phương pháp thao tác chúng an toàn và cập nhật hơn.