Làm thế nào để sử dụng iterator trong C?
Hãy coi bài viết này là một phần đồng hành với bài viết của tôi về container. https. // nhà phát triển. đến/noah11012/container-in-c-34pi Show Động lực để sử dụng các trình vòng lặp trong C là gì? . Sử dụng thuật toán như
Các thuật toán do tiêu chuẩn cung cấp có thể hoạt động trên các loại tùy chỉnh, miễn là nó triển khai một trình vòng lặp có các phương thức phổ biến của một trình vòng lặp điển hình. Ngoài ra còn có các loại vòng lặp khác nhau. 2 và 0 là hai trong số đó. 2 được sử dụng để đọc một phần tử sau đó tăng dần đến phần tử tiếp theo. 0 cũng tương tự ngoại trừ nó ghi các giá trị vào một vùng chứaGiả sử đối với cuộc thảo luận này, chúng ta sẽ làm việc với các vectơ hoặc mảng có thể tự thay đổi kích thước khi cần thiết. Chúng tôi cũng có một thuật toán tìm kiếm nhị phân, 3 có một trình lặp bắt đầu và một kết thúc và một giá trị để tìm kiếm. Để không làm phức tạp mọi thứ, chúng tôi sẽ chỉ thêm khả năng tìm kiếm số nguyênTa sẽ có cấu trúc sau
Và một số chức năng
Chúng tôi sẽ không lo lắng về chi tiết triển khai của các chức năng này để không làm lộn xộn cuộc thảo luận về tầm quan trọng của các trình vòng lặp Loại trình vòng lặp mà chúng tôi đã tạo này được gọi là trình vòng lặp truy cập ngẫu nhiên. Điều này có nghĩa là chúng ta có thể chuyển đến bất cứ đâu chúng ta muốn trong các phần tử của vùng chứa thay vì đọc tuần tự từng phần tử theo tiến trình Điều này rất hữu ích vì thuật toán nhị phân nhảy đến giữa mảng để xem phần tử có ở đó không Ví dụ về iterator trong C là gì?Ví dụ: sort , sẽ sử dụng trình lặp bắt đầu và kết thúc và sẽ hoạt động với bất kỳ vùng chứa nào
Trình lặp được triển khai như thế nào?Để triển khai Iterator, chúng ta cần một con trỏ hoặc con trỏ để theo dõi xem chúng ta hiện đang ở phần tử nào . Tùy thuộc vào cấu trúc dữ liệu cơ bản, chúng ta có thể chuyển từ phần tử này sang phần tử khác. Điều này được thực hiện trong phương thức next() trả về phần tử hiện tại và con trỏ tiến tới phần tử tiếp theo.
Iterator có thể được sử dụng trong vòng lặp không?Vòng lặp for-each sử dụng một trình lặp bên dưới lớp vỏ . Sự khác biệt chỉ là khả năng đọc (và do đó khả năng bảo trì).
Trình vòng lặp có phải là con trỏ không?Trình lặp là một đối tượng (như con trỏ ) trỏ đến phần tử bên trong vùng chứa. Chúng ta có thể sử dụng các trình vòng lặp để di chuyển qua nội dung của vùng chứa. Chúng có thể được hình dung như một cái gì đó tương tự như một con trỏ trỏ đến một số vị trí và chúng ta có thể truy cập nội dung tại vị trí cụ thể đó bằng cách sử dụng chúng. |