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
#include<array> using namespace std; int main() { array<int, 5> ar = {1, 2, 3, 4, 5}; return 0; }
2. Lấy số lượng phần từ mà nó sở hữu:
=> Sử dụng hàm size()
array<int,5> ar = {1, 2, 3, 4, 5}; int length = ar.size();
3. Truy cập vào các phần tử của array stl
+ Sử dụng function như: at()
array<int,5> ar = {1, 2, 3, 4, 5}; std::cout << "Danh sach cac phan tu trong mang: "; for ( int i=0; i< ar.size(); i++) std::cout << ar.at(i) << " ";
+ Sử dụng toán tử []
array<int,5> ar = {1, 2, 3, 4, 5}; std::cout << "Danh sach cac phan tu trong mang: "; for ( int i=0; i< ar.size(); i++) std::cout << ar[i] << " ";
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()
array<int,5> ar = {1, 2, 3, 4, 5}; std::cout << " Phan tu dau tien la : "; std::cout << ar.front() << endl; // Printing last element of array std::cout << " phan tu cuoi cung la : "; std::cout << ar.back() << endl;
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
array<int,5> ar = {1, 2, 3, 4, 5}; array<int,5> ar1 = {11, 12, 13, 14, 15}; ar.swap(ar1);
– 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()
int main() { // Initializing the array elements array<int,20> ar; ar.fill(0); _getch(); return 0; }
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:
array<int,20> ar; ar.fill(0); std::array<int,20>::iterator it = ar.begin() + 2;
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.
std::array, 20> arrayList;