So sánh 2 List trong C#
Lập trình STL - List Trong C++Trung Nguyễn 17/09/20206 min read Tìm hiểu về STL, viết tắt của cụm từ Standard Template Library, bộ thư viện chuẩn của C++. STL là gì?STL là viết tắt của cụm từ Standard Template Library, là bộ thư viện chuẩn của C++, STL cung cấp các lớp cài đặt sẵn, cho phép thao tác với các kiểu dữ liệu cơ bản cũng như các kiểu dữ liệu tự định nghĩa, việc thành thạo sử dụng thư viện STL sẽ giúp tiếp kiệm thời gian trong lập trình. Show List là gì?List là một danh sách chứa các đối tượng (các nút (node) lưu trữ các thông tin dữ liệu và địa chỉ của nút kế tiếp, nút trước đó) liên kết với nhau và cho phép chèn thêm hay xóa bất kì một đối tượng nào trong danh sách. Là một cấu trúc dữ liệu cơ bản để biết thêm tham khảo tại danh sách liên kết đơn. Cách sử dụng
Đối với các biến tĩnh cú pháp khai báo như sau: listVí dụ: listMột số constructor đã được định nghĩa sẵn như: // default constructor listLà một danh sách liên kết bao gồm các thao tác push_back() (thêm phần tử vào vị trí cuối của list)và push_font() (thêm phần tử vào vị trí đầu của list) Còn có các hàm xóa một đối tượng trong danh sách pop_back() (xóa vị trí cuối cùng) hay pop_font() (xóa vị trí đầu tiên) Ví dụ: //100 100 100 100 listHoặc xóa một vị trí bất kì trong danh sách(hàm có dạng) iterator erase (iterator position);hoặc xóa một vùng trong danh sách iterator erase (iterator first, iterator last);Ngoài ra còn có thể xóa một đối tượng có giá trị xác định void remove (const value_type& val);Ví dụ: listTruy cập đến vị trí đầu tiên của danh sách thông qua hàm begin() hoặc rend()và truy cập đến phần tử cuối cùng danh sách qua hàm end() hoặc rbegin() Để xóa hết danh sách, có thể dùng hàm clear() listChèn vào một danh sách có thể dùng hàm: iterator insert (iterator position, const value_type& val);Tức là chèn giá trị val vào danh sách từ vị trí position Ngoài ra còn có hàm sau: void insert (iterator position, size_type n, const value_type& val);Nghĩa là chèn vào danh sách n phần tử có giá trị val từ vị trí position Hoặc chèn một danh sách từ vị trí first đến vị trí last vào một danh sách từ vị trí position void insert (iterator position, InputIterator first, InputIterator last);Ví dụ: Ngoài ra có thể kiểm tra xem danh sách có rỗng hay không thông qua hàm empty() nếu rỗng trả về true và ngược lại listHoặc trả về kích thước của danh sách thông qua hàm size() listCòn có thể sắp xếp danh sách qua hàm sort() l.push_back(1); l.push_back(5); l.push_back(3); l.push_back(2); l.push_back(7); l.sort(); // 1 2 3 5 7Nhưng hàm merge()sau khi trộn 2 list lại sẽ tự động sort std::listTừ đầu bài viết đã có sử dụng tới iterator để truy cập vào các phần tử trong list vậy iterator là gì. listLưu ý iteratorthực chất cũng là một con trỏ. Lưu lại địa chỉ của các phần tử Node trong list STL đã đặt tên là iterator và biến nó thành một đối tượng và biến nó thành một đối tượng dùng để duyệt qua một list, vector, ... để có thể làm việc một cách trực quan nhất. Ưu điểm và nhược điểm của "list"Việc sử dụng thành thạo các hàm trong list nói chung hoặc danh sách list nói riêng sẽ giúp ích rất nhiều về vấn đề quản lý, có thể là quản lý một danh sách thông tin nào đó, với các hàm đã được hỗ trợ viết sẵn sẽ giúp dễ dàng cập nhật và sửa chữa. List hỗ trợ vòng lặp 2 chiều, nhưng lại không thể truy cập ngẫu nhiên như các mảng thông thường vì vậy mà việc tìm kiếm một phần tử trong danh sách sẽ rất chậm, lí do từ việc cấu trúc của List được xây dựng tương tự danh sách liên kết đơn. Modern C++STDIO Training - Đào Tạo Lập Trình C++. |