forward_list::cbefore_begin() trả về iterator hằng (const_iterator) trỏ đến vị trí trước phần tử đầu tiên. Dùng để chèn vào đầu danh sách qua insert_after().
Cú pháp
forward_list_name.cbefore_begin();
Không tham số. Trả về const_iterator.
Ví dụ
Input: {8, 9, 32, 21} → Chèn 56 trước đầu → Output: 56 8 9 32 21
Chương trình mẫu
#include <iostream>
#include <forward_list>
using namespace std;
int main() {
forward_list<int> Lt = {40, 55, 67, 89};
// Lấy iterator trước phần tử đầu
auto itr = Lt.cbefore_begin();
// Chèn 77 sau vị trí trước đầu = chèn vào đầu
Lt.insert_after(itr, 77);
// In danh sách
for (auto it = Lt.cbegin(); it != Lt.cend(); ++it)
cout << *it << " ";
return 0;
}
Kết quả
77 40 55 67 89
Giải thích: cbefore_begin() trả về vị trí "giả" trước head. insert_after() tại vị trí này sẽ chèn làm phần tử đầu tiên mới. Đây là cách chuẩn để chèn đầu forward_list (bổ sung cho emplace_front).
Lưu ý: Iterator trả về là const, không thể sửa đổi phần tử qua nó.