Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của hàm forward_list::before_begin() trong C++.
Forward_list trong STL là gì?
forward_list là các container trình tự cho phép chèn và xóa trong thời gian không đổi ở bất kỳ vị trí nào trong chuỗi. forward_list được triển khai dưới dạng danh sách liên kết đơn. Thứ tự được duy trì bằng cách liên kết mỗi phần tử với phần tử tiếp theo trong chuỗi.
forward_list::before_begin() là gì?
forward_list::before_begin() là hàm built-in trong C++ STL được khai báo trong header <forward_list>. Hàm before_begin() trả về iterator trỏ đến vị trí trước phần tử đầu tiên trong container forward_list. Iterator này thường dùng với insert_after() để chèn phần tử vào đầu danh sách.
Cú pháp
forwardlist_container.before_begin();
Hàm này không nhận tham số.
Giá trị trả về
Hàm này trả về iterator đến vị trí trước phần tử đầu tiên của chuỗi.
Ví dụ 1
#include <bits/stdc++.h>
using namespace std;
int main() {
// tạo và khởi tạo forward list
forward_list<int> forwardList = {3, 6, 1, 2, 4};
// gọi before_begin()
auto i = forwardList.before_begin();
// chèn phần tử trước forward list
forwardList.insert_after(i, 7);
cout << "Các phần tử của forward list: " << endl;
for (auto j = forwardList.begin(); j != forwardList.end(); ++j)
cout << *j << " ";
return 0;
}
Kết quả
Chạy mã trên sẽ cho kết quả sau:
Các phần tử của forward list: 7 3 6 1 2 4
Ví dụ 2
#include <bits/stdc++.h>
using namespace std;
int main() {
forward_list<int> forwardList = {2, 23, 12, 11};
forwardList.insert_after(forwardList.before_begin(), 19);
cout << "Các phần tử trong forward list: ";
for (auto j = forwardList.begin(); j != forwardList.end(); ++j)
cout << *j << " ";
return 0;
}
Kết quả
Chạy mã trên sẽ cho kết quả sau:
Các phần tử trong forward list: 19 2 23 12 11