Hướng dẫn cách xóa list trong C++. Bạn sẽ học được cách sử dụng các hàm như hàm pop_front(), pop_back cũng như hàm list erase C++ để xóa phần tử trong list sau bài học này.
Chúng ta có 3 phương pháp để xóa list trong C++ như sau:
- Hàm pop_front : Xóa phần tử đầu tiên trong list
- Hàm pop_back : Xóa phần tử cuối cùng trong list
- list erase C++: Xóa phần tử tại vị trí chỉ định
- Hàm erase(first, last): Xóa các phần tử trong phạm vi chỉ định
Xóa phần tử đầu tiên trong list C++ bằng pop_front
Hàm pop_front là một hàm thành viên trong class std:list, có tác dụng xóa phần tử đầu tiên trong list cũng như giảm độ dài của nó đi một đơn vị.
Cú pháp sử dụng hàm pop_front để xóa phần tử đầu tiên trong list như sau:
lst.pop_front();
Trong đó lst
là tên list cần xóa phần tử đầu tiên.
Ví dụ cụ thể:
|
Kết quả:
Before erase |
Có thể thấy phần tử đầu tiên trong list là phần tử 3
đã bị xóa khỏi list ban đầu.
Hàm pop_front thuộc kiểu void, do đó nó sẽ không trả giá trị. Bởi vậy nó sẽ xóa phần tử đầu tiên trong list chứ không trả về phần tử đó. Trong trường hợp muốn lấy phần tử đầu tiên trong list, hãy sử dụng tới hàm front để thay thế.
Ví dụ:
list<int> lst{3, 1, 4, 1, 5}; |
Xóa phần tử cuối cùng trong list C++ bằng pop_back
Hàm pop_back là một hàm thành viên trong class std:list, có tác dụng xóa phần tử cuối cùng trong list cũng như giảm độ dài của nó đi một đơn vị.
Cú pháp sử dụng hàm pop_back để xóa phần tử cuối cùng trong list như sau:
lst.pop_back();
Trong đó lst
là tên list cần xóa phần tử cuối cùng.
Ví dụ cụ thể:
|
Kết quả:
Before erase |
Có thể thấy phần tử cuối cùng trong list là phần tử 5
đã bị xóa khỏi list ban đầu.
Hàm pop_back thuộc kiểu void, do đó nó sẽ không trả giá trị. Bởi vậy nó sẽ xóa phần tử cuối cùng trong list chứ không trả về phần tử đó. Trong trường hợp muốn lấy phần tử cuối cùng trong list, hãy sử dụng tới hàm back để thay thế.
Ví dụ:
list<int> lst{3, 1, 4, 1, 5}; |
Xóa 1 phần tử trong list bằng hàm erase c++
erase trong c++ là một hàm thành viên trong class std:list, có tác dụng xóa một hoặc nhiều phần tử trong list C++ ở vị trí chỉ định cũng như làm giảm độ dài tương ứng của nó.
Để xóa 1 phần tử tại vị trí chỉ định bằng hàm erase trong list c++ chúng ta sử dụng cú pháp sau đây:
lst.erase(itr);
Trong đó lst
là list ban đầu, và itr
là trình lặp trỏ đến vị trí cần xóa trong list.
Ở đây trình lặp (iterator) là một vòng lặp có tác dụng giống như con trỏ, giúp truy cập đến các phần tử ở vị trí cụ thể trong list.
Giống như Kiyoshi đã phân tích tại bài thêm chèn list trong C++ thì để chuyển trình lặp chỉ đến vị trí index thứ n trong list, chúng ta không thể đơn giản cộng vào n vào trình lặp, mà cần phải di chuyển lần lượt qua từng vị trí, bằng toán tử ++ với đủ số vòng lặp.
Ví dụ, trong trường hợp cần chỉ đến vị trí index thứ 5 trong list, chúng ta sẽ viết trình lặp p như sau:
int n = 5; |
Sau khi đã dịch chuyển trình lặp tới vị trí chỉ định cần xóa phần tử, chúng ta có thể đơn giản sử dụng hàm erase để xóa giá trị ở vị trí đó.
auto itr = lst.begin(); |
Ví dụ cụ thể:
|
Kết quả:
3 1 4 1 5 7 9 |
Xóa các phần tử trong một phạm vi chỉ định bằng list erase c++
Chúng ta sử dụng list erase c++ để xóa các phần tử trong một phạm vi chỉ định của một list với cú pháp sau đây:
lst.erase( iterator_first, iterator_last);
Trong đó lst
là list ban đầu, iterator_first
và iterator_last
là các trình lặp trỏ đến phạm vi bắt đầu và kết thúc xóa.
Lưu ý là phạm vi xóa sẽ được tính từ iterator_first
đến iterator_last
, nghĩa là phần tử ở vị trí iterator_first
và iterator_last
cũng sẽ bị xóa đi.
Và để chỉ định trình lặp tới các phạm vi đó thì chúng ta cũng sử dụng cách tăng tuần tự trình lặp như ở phần trên.
Ví dụ cụ thể:
|
Kết quả:
3 1 4 1 5 7 9 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách xóa phần tử trong list 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/list-trong-cpp/xoa-phan-tu-trong-list-cpp/
HOME › lập trình c++ cơ bản dành cho người mới học lập trình>>20. list trong c++