Bài viết đăng tại: https://laptrinhcanban.com
Hướng dẫn cách xóa vector trong C++. Bạn sẽ học được cách sử dụng các hàm như hàm pop_back cũng như hàm vector erase C++ để xóa phần tử trong vector sau bài học này.
Chúng ta có 3 phương pháp để xóa vector trong C++ như sau:
- Hàm pop_back : Xóa phần tử cuối cùng trong vector
- Vector 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ử cuối cùng trong vector C++ bằng pop_back
Hàm pop_back là một hàm thành viên trong class std:vector, có tác dụng xóa phần tử cuối cùng trong vector 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 vector như sau:
v.pop_back();
Trong đó v
là tên vector 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 chuỗi là phần tử d
đã bị xóa khỏi chuỗi 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 vector 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 vector, hãy sử dụng tới hàm back để thay thế.
Ví dụ:
vector<int> v{3, 1, 4, 1, 5}; |
Xóa 1 phần tử trong vector bằng vector erase c++
vector erase c++ là một hàm thành viên trong class std:vector, có tác dụng xóa một hoặc nhiều phần tử trong vector C++ 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 vector c++ chúng ta sử dụng cú pháp sau đây:
v.erase(p);
Trong đó v
là vector ban đầu, và p
là trình lặp trỏ đến vị trí cần xóa trong vector.
Ở đâ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 vector.
Trong trường hợp cần chỉ đến vị trí index thứ i trong vector, chúng ta sẽ viết trình lặp p như sau:
v.begin() + i
Trong đó v.begin()
chỉ đến vị trí đầu tiên trong vector, và i
là index của vị trí phần tử cần chỉ đến.
Kết hợp lại thì công thức để xóa 1 phần tử tại vị trí chỉ định trong vector C++ bằng hàm erase sẽ như sau:
v.erase(v.begin() + i);
Ví dụ cụ thể:
|
Kết quả:
3 4 1 5 |
Xóa các phần tử trong một phạm vi chỉ định bằng vector erase c++
Chúng ta sử dụng vector erase c++ để xóa các phần tử trong một phạm vi chỉ định của một vector với cú pháp sau đây:
v.erase( iterator_first, iterator_last);
Trong đó v
là chuỗi ban đầu, iterator_first
và iterator_last
là phạm vi cần xóa được chỉ định trong trình lặp trỏ đến vị trí cần xóa trong vector.
Tương tự như khi xóa 1 phần tử thì cú pháp sử dụng thực tế để xóa các phần tử trong một phạm vi chỉ định trong vector C++ bằng hàm erase sẽ là:
v.erase(v.begin() + start, v.begin() + end);
Trong đó start
và end
là vị trí index của phạm vi xóa trong vector.
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 vector 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/vector-trong-cpp/xoa-phan-tu-trong-vector-cpp/
HOME › lập trình c++ cơ bản dành cho người mới học lập trình>>18. vector trong c++