Ok, vì vậy đây là câu hỏi phỏng vấn mà tôi nhận được và chỉ thực hiện tầm thường vào thời điểm đó. Tôi tự hỏi giải pháp tối ưu là gì và cách nó được triển khai tốt nhất.Làm cách nào để tạo một trình vòng lặp trên một số danh sách được sắp xếp?
Bạn được cung cấp nhiều danh sách được sắp xếp, xây dựng một cái gì đó cho phép chúng tôi lặp qua tất cả các danh sách này từ nhỏ nhất đến phần tử lớn nhất.
Ví dụ:
{ -2, 5, 10}
{ 2, 9, 11}
{ -5, 9}
-> -5, -2, 2, 5, 9, 9, 10, 11
Cập nhật:
Với một chút sự giúp đỡ từ các SO trò chuyện # c-hỏi-và-câu trả lời và @Nican nói riêng, tôi đã nhận được tàu này bay bằng cách nào đó. Tôi đã đăng mã làm việc của tôi như là một câu trả lời để cho phép các giải pháp khác là tốt.
Câu trả lời tôi đã đăng bên dưới vẫn còn lộn xộn và cụ thể là tôi chưa triển khai == và! = Chính xác. Tôi vẫn cần giúp đỡ về những thứ đó.
Biện minh cho câu hỏi này
Tìm việc triển khai iterator tùy chỉnh sạch và Minimalistic trực tuyến mà không phải là phổ biến. Và tôi tin rằng câu hỏi này có thể phục vụ như là một điểm khởi đầu tốt cho những người khác để nâng cao hiểu biết của họ về vòng lặp và thực hành tốt nhất.
Không hoàn toàn chắc chắn ý của bạn là gì * "Triển khai kết thúc() để kiểm tra xem kết thúc cơ bản nào là lớn nhất." * Tôi không thể thấy nó sẽ giúp bạn như thế nào. Chỉ cần có 'end()' trả về một đối tượng iterator với một mã định danh cho bạn biết bạn đang ở cuối chuỗi. Sau đó, hãy chắc chắn rằng toán tử '==' của bạn xử lý nó. Đối với một iterator chuyển tiếp viết '++', toán tử gán, vv Sau đó, refactor cũng tạo một' const_iterator'. – MFisherKDX