C++ STL: Sử dụng lớp Array

Hi, xin chào các bạn đến với chủ đề :Học lập trình C++ STL.

Bài viết này chúng ta tìm hiểu cách sử dụng Array 
I. Các ưu điểm của lớp array so với mảng truyền thống.

– Lớp array biết được kích thước nó sở hữu, hay nói cách khác là nó có thể tự lấy được số lượng phần tử nó đang sở hữu.

– Mảng thông thường có nguy cơ phân rã thành các con trỏ, nhưng lớp array thì không.

– Có độ hiệu quả cao hơn, dung lượng nhẹ hơn và độ tin cậy đảm bảo tốt hơn.

II. Các function chính trong lớp array

1. Cách khai báo để sử dụng array

 

2. Lấy số lượng phần từ mà nó sở hữu:   

=> Sử dụng hàm size()

 

3. Truy cập vào các phần tử của array stl 

+ Sử dụng function như:  at()

+ Sử dụng toán tử []

 

4. Khi muốn lấy giá trị của phần tử đầu và phần tử cuối

– Sử dụng hai hàm front(), back()

5. Đổi giá trị hai mảng cho nhau, với điều kiện hai mảng cùng kích thước.

– Sử dụng hàm swap

– Sau khi thực hiện hàm swap, ar sẽ sở hữu các phần tử của ar1, còn ar1 sẽ sở hữu các phần tử của ar.

– Nếu hai mảng này ko cùng số lượng phần tử, thì sẽ báo lỗi.

6. Kiểm tra xem mảng có phần tử nào không.

– Có thể sử dụng hàm size() để kiểm tra số lượng phần tử với 0

– Sử dụng hàm empty():  trả về true nếu số lượng phần tử = 0 và ngược lại là false.

 

7. Muốn thiết lập một giá trị mặc định cho toàn bộ phần tử của array.

– Sử dụng hàm fill()

Trước hàm fill, 20 phần tử của array sẽ có giá trị ngẫu nhiên.

Sau hàm fill, chúng được thiết lập bằng 0, hàm fill giúp ta giảm thời gian cho việc thiết lập giá trị cho từng phần tử.

 

8. Con trỏ iterator trong array

Ví dụ như sau:

 

 

2 thoughts on “C++ STL: Sử dụng lớp Array

  • 19 September, 2020 at 2:19 am
    Permalink

    Mình đang viết c++, mình dùng thư việ array để khai báo mảng một chiều như này ‘array f’ thì được nhưng lại không biết khai báo mảng 2 chiều như thế nào. Các bạn giúp mình với.

    Reply
  • 21 August, 2022 at 7:20 pm
    Permalink

    std::array, 20> arrayList;

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.