Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2

Chủ đề: Iterator trong C++

  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Iterator trong C++

    Em đọc qua STL thì thấy có 5 iterator: Input,Output, Forward, Bidirectional, Randomaccess . Nhưng trong lý thuyết thì chi có nói sơ qua. Vậy sự khác nhau giữa các iterator này là gì, bác nào cho em ví dụ với. Em cám ơn các bác .

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    it = iterator X

    nếu X là input iterator thì deref it được: *it;
    nếu X là output iterator thì deref it được và gán giá trị cho *it được: *it = x;
    nếu X là foward iterator thì increment it được: ++it; it++;
    nếu X là bidirectional iterator thì increment và decrement it được: ++it; it++; --it; it--;
    nếu X là random access iterator thì increment, decrement, và thực hiện phép +/- trên it được: ++it; it++; --it; it--; it - 6; it + 3; it += 3; it -= 4, v.v...


    input/output iterator thì dễ rồi khỏi ví dụ
    vd foward iterator: singly linked list: chỉ gán node = node->next được, đồng nghĩa với chỉ ++it hoặc it++ được.
    vd bidirectional iterator: doubly linked list: gán node = node->next được, và gán node = node->prev được đồng nghĩa với ++it hoặc it++ hoặc --it hoặc it-- được.
    vd random access iterator: con trỏ mảng. ++, --, +, - đều được. (Trong khi với linked list thì ko + hoặc - được mà phải tăng từ từ từng bước một)

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •