Tôi đã xem xét một vài nguồn để triển khai STL (SGI, STLport, libC++) và thấy một vài mẫu thiết kế dường như phổ biến cho tất cả hoặc hầu hết các triển khai, nhưng tôi không tìm thấy lý do nào. Tôi giả sử có phải là một reson tốt, và muốn biết những gì nó là:Lý do thiết kế đằng sau STL
Nhiều lớp học, trong đó có
vector
vàlist_iterator
số những người khác, đã được thực hiện như 2 lớp, ví dụlist_iterator_base
với một phần chức năng và sau đólist_iterator
kế thừalist_iterator_base
với phần còn lại của giao diện. Điểm là gì? Có vẻ như nó có thể được thực hiện một cách dễ dàng trong một lớp.Các trình vòng lặp dường như không sử dụng lớp
iterator
. Có một số hình phạt về hiệu suất để sử dụng nó không?
Đó là 2 câu hỏi tôi tìm thấy chỉ trong một trích dẫn nhanh. Nếu bất cứ ai biết về một nguồn tài nguyên tốt giải thích lý do thực hiện của một thực hiện STL, tôi sẽ rất vui khi nghe về nó.
"Tôm Jumbo". –
Lưu ý rằng kỹ thuật STL và thư viện chuẩn (stdlib) là khác nhau. Sau này, phần lớn, được lấy từ phần trước khi nó được thêm vào tiêu chuẩn ngôn ngữ chính thức. Hầu như không ai sử dụng STL "đúng" nữa mà thay vào đó sử dụng các triển khai của thư viện chuẩn (ví dụ: libC++). Nhiều người nói đến stdlib như STL anyway, và điều đó thường tốt, nhưng đối với câu hỏi của bạn, sự khác biệt làm thay đổi ý nghĩa. – GManNickG
@DaveNewton Tôi không hiểu nhận xét của bạn. – baruch