Đảo ngược list trong C++ | Laptrinhcanban.com

Đảo ngược list trong C++

Hướng dẫn cách đảo ngược list trong C++. Bạn sẽ học được cách sử dụng hàm reverse để đảo ngược các phần tử có trong list C++ sau bài học này.

Chúng ta có 2 phương pháp để đảo ngược list trong C++ như sau:

  • Sử dụng list reverse
  • Sử dụng std::reverse

Đảo ngược list trong C++ bằng list reverse

Hàm reverse là một hàm thành viên trong class std:list, có tác dụng đảo ngược thứ tự các phần tử có trong list C++.

Cú pháp sử dụng hàm reverse để đảo ngược list trong C++ như sau:

lst.reverse();

Trong đó lst là tên list cần đảo ngược thứ tự các phần tử.

Ví dụ cụ thể:

#include <iostream>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& lst)
{
for (auto x: lst) {
cout << " "<< x ;
}
cout << endl;
}

int main ()
{
list<int> lst{3, 1, 4, 2, 5};
cout << "Before reverse" << endl;
dump (lst);

lst.reverse();
cout << "After reverse" << endl;
dump (lst);
return 0;
}

Kết quả:

Before reverse
3 1 4 2 5
After reverse
5 2 4 1 3

Có thể thấy vị trí các phần tử trong list ban đầu đã được đảo ngược như trên.

Đảo ngược list trong C++ bằng std::reverse

std::reverse là một function template, có tác dụng đảo ngược thứ tự các phần tử có trong đối tượng C++ chứa nhiều phần tử.

Chúng ta có thể dùng std::reverse không những để đảo ngược list mà còn có thể đảo ngược các đối tượng khác như vector hay map trong C++ chẳng hạn.

Để sử dụng hàm std::reverse, chúng ta cần include header file algorithm vào đầu chương trình như sau:

#include <algorithm>

Cú pháp sử dụng hàm reverse trong std::reverse để đảo ngược list trong C++ như sau:

std::reverse(lst.begin(), lst.end());

Trong đó lst là tên list cần đảo ngược thứ tự các phần tử, còn lst.begin()lst.end() lần lượt là các trình lặp có tác dụng như con trỏ chỉ đến vị trí đầu tiên và cuối cùng của list.

Ngoài ra do std::reverse cũng có namespace là std nên nếu đã khai báo namespace này đầu chương trình thì chúng ta cũng có thể lược bỏ đi dòng std khi sử dụng hàm.

Ví dụ cụ thể:

#include <iostream>
#include <algorithm>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& lst)
{
for (auto x: lst) {
cout << " "<< x ;
}
cout << endl;
}

int main ()
{
list<int> lst{3, 1, 4, 2, 5};
cout << "Before reverse" << endl;
dump (lst);

reverse(lst.begin(), lst.end());
cout << "After reverse" << endl;
dump (lst);
return 0;
}

Kết quả thu về cũng tương tự như khi dùng hàm thành viên reverse của str::list ở trên.

Before reverse
3 1 4 2 5
After reverse
5 2 4 1 3

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách đảo ngược list 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.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.