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

list::cbegin() và cend() trong C++ STL

cbegin() và cend() cung cấp const_iterator để duyệt list từ đầu đến cuối chỉ đọc (không sửa đổi phần tử).

cbegin()

  • Trả về const_iterator trỏ đến phần tử đầu tiên
  • Cú pháp: list_name.cbegin()

cend()

  • Trả về const_iterator trỏ đến vị trí sau phần tử cuối (past-the-end)
  • Cú pháp: list_name.cend()

Ví dụ duyệt chỉ đọc

#include <iostream>
#include <list>
using namespace std;

int main() {
    list<int> Lt = {4, 1, 7, 9, 6};
    
    cout << "Elements (read-only): ";
    for (auto itr = Lt.cbegin(); itr != Lt.cend(); ++itr)
        cout << *itr << " ";
    cout << endl;
    
    // *itr = 100; // Lỗi compile: assignment to const reference
    return 0;
}

Kết quả

Elements (read-only): 4 1 7 9 6

Khi nào dùng cbegin/cend?

  • Duyệt container trong hàm nhận const list&
  • Đảm bảo không vô tình sửa đổi dữ liệu
  • API công khai trả về iterator chỉ đọc

So sánh

HàmTrả vềVị tríSửa được?
begin()iteratorĐầuCó
cbegin()const_iteratorĐầuKhông
end()iteratorSau cuốiCó
cend()const_iteratorSau cuốiKhông

C++11: dùng auto itr = Lt.cbegin() tự suy diễn kiểu const_iterator.