Mảng (Array) trong C++
Array trong C++ là một cấu trúc dữ liệu cơ bản, lưu trữ một tập hợp các phần tử có cùng kiểu dữ liệu. Dưới đây là tổng quan về các thao tác cơ bản và nâng cao với array trong C++ cùng với các ví dụ minh họa.
Khai báo và khởi tạo array:
#include <iostream>
using namespace std;
int main() {
// Khai báo array với kích thước 5
int arr[5];
// Khởi tạo array với giá trị cụ thể
int arr2[5] = {1, 2, 3, 4, 5};
// Khởi tạo một phần, phần còn lại sẽ là 0
int arr3[5] = {1, 2};
// Khởi tạo tất cả phần tử là 0
int arr4[5] = {0};
// Truy cập phần tử
cout << "Phần tử đầu tiên của arr2: " << arr2[0] << endl;
return 0;
}
Nhập và xuất phần tử của array:
#include <iostream>
using namespace std;
int main() {
int arr[5];
// Nhập phần tử cho array
for(int i = 0; i < 5; i++) {
cout << "Nhập phần tử thứ " << i+1 << ": ";
cin >> arr[i];
}
// Xuất phần tử của array
for(int i = 0; i < 5; i++) {
cout << "Phần tử thứ " << i+1 << ": " << arr[i] << endl;
}
return 0;
}
Sử dụng thư viện algorithm:
Sắp xếp array:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[5] = {5, 2, 9, 1, 5};
sort(arr, arr + 5);
cout << "Array sau khi sắp xếp: ";
for(int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
Đảo ngược array:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[5] = {1, 2, 3, 4, 5};
reverse(arr, arr + 5);
cout << "Array sau khi đảo ngược: ";
for(int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
Sử dụng con trỏ và cấp phát động:
#include <iostream>
using namespace std;
int main() {
// Khai báo con trỏ
int* arr;
int n;
// Nhập kích thước mảng từ người dùng
cout << "Nhập kích thước mảng: ";
cin >> n;
// Cấp phát bộ nhớ động cho mảng
arr = new int[n];
// Nhập giá trị cho mảng
for(int i = 0; i < n; i++) {
cout << "Nhập phần tử thứ " << i + 1 << ": ";
cin >> arr[i];
}
// Xuất giá trị của mảng
cout << "Các phần tử của mảng: ";
for(int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
// Giải phóng bộ nhớ
delete[] arr;
return 0;
}