Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

forward_list::cbefore_begin() trong C++ STL

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ó.