Trong ngôn ngữ C++ không tồn tại hàm có sẵn nào giúp chúng ta đảo ngược mảng trong C++ cả. Do vậy chúng ta cần phải ứng dụng các hàm có sẵn khác để có thể tự tạo hàm đảo ngược mảng trong C++. Ứng dụng hàm này, chúng ta có thể đảo ngược dãy số trong C++ và bạn sẽ học được chúng sau bài học này.
Có 2 phương pháp để đảo ngược mảng trong C++ như sau:
- Đảo ngược mảng bằng cách dùng define
- Đảo ngược mảng bằng cách viết trực tiếp
Logic đảo ngược mảng trong C++ | Đảo ngược dãy số trong C++
Đảo ngược mảng trong C++ là xử lý viết lại một mảng với các phần tử theo thứ tự ngược lại từ cuối lên đầu. Lưu ý ở đây mảng là mảng số, do đó chúng ta cũng có thể gọi xử lý này là đảo ngược dãy số trong C++.
Nếu bạn muốn đảo ngược một mảng chuỗi trong C++, hãy theo dõi bài viết sau:
- Xem thêm: Đảo ngược chuỗi trong C++
Quay trở lại với xử lý đảo ngược dãy số trong C++, ví dụ chúng ta mảng dãy số như sau:
int array[] = {0, 1, 2, 3, 4, 5}; |
Để đảo ngược dãy số này này, chúng ta sử dụng ý tưởng rất đơn giản. Chúng ta hoán đổi số đầu với số cuối trong mảng, sau đó giảm phạm vi bằng cách tiến dần về giữa mảng và lặp lại quá trình hoán đổi số đầu với số cuối trong mảng.
Nói cách khác, với mảng số ở trên thì chúng ta sẽ hoán đổi 0 với 5, 1 với 4, và 2 với 3 , để thu về mảng kết quả là {5, 4, 3, 2, 1, 0}.
Lại nữa, để có thể hoán đổi 2 phần tử như trên, chúng ta cần phải chuẩn bị một vùng tạm thời để chứa một trong 2 phần tử, và hoán đổi với logic temp = X; X = Y; Y = temp;
Và để thực hiện được logic hoán đổi 2 số ở trên, chúng ta sẽ có 2 phương pháp là định nghĩa xử lý hoán đổi bằng từ khoádefine hoặc là viết trực tiếp xử lý hoán đổi trong hàm tự tạo. Tương đương với chúng sẽ là 2 phương pháp đảo ngược mảng trong C++ như dưới đây.
Đảo ngược mảng bằng cách dùng define
define là một từ khoá dùng để định nghĩa macro trong C++. Bằng cách sử dụng define, chúng ta có thể định nghĩa các biến hoặc hàm được sử dụng nhiều lần trong chương trình bởi một macro, và sử dụng macro này đại diện cho các xử lý đó trong chương trình C++.
Ví dụ, hai macro dưới đây sẽ giúp chúng ta định nghĩa số PI, cũng như hàm tính diện tích hình trong chẳng hạn.
Quay trở lại bài toán đảo ngược mảng trong C++, chúng ta sẽ dùng define để tạo một macro để định nghĩa hàm hoán đổi 2 phần tử trong C++ như sau:
Và sử dụng macro này, chúng ta có thể hoàn thành hàm đảo ngược mảng trong C++ như sau:
|
Kết quả của phép đảo ngược mảng trong C++ như dưới đây. Bạn hãy thử chạy chương trình và kiểm tra nhé.
44 33 22 11 |
Đảo ngược mảng bằng cách viết xử lý hoán đổi trong hàm
Với cách thứ 2 này, thay vì dùng define để định nghĩa xử lý thì chúng ta sẽ viết trực tiếp các xử lý hoán đổi 2 số vào trong hàm đảo ngược mảng trong C++ như sau:
void reverse(int* array, int size) |
Và chúng ta viết chương trình đảo ngược mảng trong C++ với hàm này như dưới đây:
|
Và chúng ta cũng thu về kết quả đảo ngược mảng trong C++ tương tự như với cách ban đầu:
44 33 22 11 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn cách đảo ngược mảng trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/mang-trong-cpp/dao-nguoc-mang-trong-cpp/
HOME › lập trình c++ cơ bản dành cho người mới học lập trình>>17. mảng trong c++