Lớp std::array trong C++ hiệu quả và tự biết kích thước của mình.
Các hàm thành viên thường dùng
size()– Trả về số phần tử.max_size()– Trả về số phần tử tối đa.at(),operator[],get()– Truy cập phần tử.front()– Phần tử đầu tiên.back()– Phần tử cuối cùng.empty()– Kiểm tra rỗng.fill()– Điền toàn bộ mảng một giá trị.swap()– Hoán đổi nội dung hai mảng.
Ví dụ minh họa
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int,4> a = {10, 20, 30, 40};
array<int,4> a1 = {50, 60, 70, 90};
cout << "Kich thuoc mang: " << a.size() << endl;
cout << "So phan tu toi da: " << a.max_size() << endl;
cout << "Cac phan tu (at()): ";
for (int i=0; i<4; i++) cout << a.at(i) << " "; cout << endl;
cout << "Cac phan tu (get()): " << get<0>(a) << " " << get<1>(a) << endl;
cout << "Cac phan tu (operator[]): ";
for (int i=0; i<4; i++) cout << a[i] << " "; cout << endl;
cout << "Phan tu dau: " << a.front() << endl;
cout << "Phan tu cuoi: " << a.back() << endl;
cout << "Mang a1 truoc swap: ";
for (int i=0; i<4; i++) cout << a1[i] << " "; cout << endl;
a.swap(a1);
cout << "Mang a sau swap: ";
for (int i=0; i<4; i++) cout << a[i] << " "; cout << endl;
cout << "Mang a1 sau swap: ";
for (int i=0; i<4; i++) cout << a1[i] << " "; cout << endl;
cout << (a1.empty() ? "Mang rong" : "Mang khong rong") << endl;
a.fill(1);
cout << "Mang a sau fill(1): ";
for (int i=0; i<4; i++) cout << a[i] << " ";
return 0;
}
Kết quả
Kich thuoc mang: 4 So phan tu toi da: 4 Cac phan tu (at()): 10 20 30 40 Cac phan tu (get()): 10 20 Cac phan tu (operator[]): 10 20 30 40 Phan tu dau: 10 Phan tu cuoi: 40 Mang a1 truoc swap: 50 60 70 90 Mang a sau swap: 50 60 70 90 Mang a1 sau swap: 10 20 30 40 Mang khong rong Mang a sau fill(1): 1 1 1 1