BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Tìm hiểu về thư viên STL

21 526 1
BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Tìm hiểu về thư viên STL

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC NÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Đề tài 7: “Tìm hiểu thư viên STL: Tổng quan STL, Sequence Containers, Associative Containers Algorithms Viết chương trình nhập vào danh sách n sinh viên, sinh viên có thơng tin họ tên, lớp, điểm TBC Sắp xếp danh sách sinh viên theo điểm TBC giảm dần u cầu chương trình có sử dụng container list để chứa đối tượng sinh viên algorithms sort để xếp danh sách sinh viên” Giảng viên hướng dẫn Nhóm sinh viên thực (Nhóm 39) : : Lớp Ngơ Cơng Thắng Nguyễn Thị Gấm Chu Thị Thanh Hương Nguyễn Thị Xuân Mai Nguyễn Thị Nga TH52C : Hà Nội 2010 MỤC LỤC Trang A Tổng quan STL I Giới thiệu thư viện chuẩn STL II Các thành phần STL .3 B Container I Container (Sequential container) Vector 1.1/ Cú pháp 1.2/ Các phương thức .6 1.3/ Kiểm tra tràn số mảng .7 Deques 2.1/ Các khả Deque 2.2/ Hoạt động Deque .9 Lists 10 II Container liên kết (Asociative container) 11 Định nghĩa 11 Các Côngtenơ liên kết bản: .12 2.1/ Map 12 2.2/ Multimap 13 2.3/ Set 13 2.4/ Multiset 14 Một số kiểu khác 14 3.1 Kiểu hash_map (ánh xạ dùng mảng băm) 14 3.2 Kiểu hash_set (tập hợp) 14 C THƯ VIỆN ALGORITHM 15 Nhóm hàm khơng thay đổi container .15 Nhóm hàm thay đổi container 15 Nhóm hàm xếp 17 Nhóm hàm danh sách xếp 18 Các hàm heap 19 Các hàm tìm MIN & MAX 19 D Viết chương trình .20 TÀI LIỆU THAM KHẢO A Tổng quan STL I Giới thiệu thư viện chuẩn STL C++ đánh giá ngơn ngữ mạnh tính mềm dẻo, gần gũi với ngơn ngữ máy Ngồi ra, với khả lập trình theo mẫu (template), C++ khiến ngơn ngữ lập trình trở thành khái quát, không cụ thể chi tiết nhiều ngôn ngữ khác Dựa vào kỹ thuật sử dụng template lập trình hướng đối tượng, Alexander Stepanov phịng thí nghiệm hãng Hewlett Parket (HP) Palo, California tiến hành xây dựng thư viện template cho C++ vào năm 1992 với mong muốn có cấu trúc liệu giải thuật tổng quát hiệu Sau năm, vào ngày 14/6/1994 thư viện đưa vào danh sách thư viện chuẩn C++ theo tiêu chuẩn ANSI/ISO với tên gọi Standard Template Library (STL) Trong giai đoạn tiếp theo, STL nhiều tổ chức, hãng phần mềm mở rộng phát triển; đáng kể phải kể đến phiên SGI - STL Silicon Graphics STL Port (hiện tích hợp Borland C++ Builder 6) Cũng xuất phát từ ý tưởng STL (đồng thời sử dụng thư viện làm tảng), số thư viện standard template khác đời phục vụ lớp ứng dụng đặc thù hơn, thư viện cho ma trận - MTL (trường đại học Notre Dame - Pháp) hay thư viện cho đồ thị - GTL (trường đại học Passau - Đức) STL hỗ trợ sẵn cho bạn nhiều cấu trúc liệu mà cài đặt thuật toán bạn thường sử dụng, giúp tiết kiệm thời gian, tối ưu tốc độ mềm dẻo Bởi thuật toán sử dụng để cài đặt STL tối ưu, kỹ sư nhà toán học đầu giới nghiên cứu phát triển II Các thành phần STL STL chứa nhiều thành phần khác nhau, quan trọng containers, algorithms iterators: − Container (các lưu trữ liệu) cấu trúc liệu phổ biến template hóa dùng để lưu trữ kiểu liệu khác nhau, bao gồm kiểu liệu có sẵn int, float đối tượng lớp Các container chia làm loại: + Container (Sequential container) + Container liên kết (Asociative container) − Iterators (biến lặp) dạng khái quát hóa khái niệm trỏ Chúng trỏ tới phần tử container Các iterator thành phần chủ yếu STL chúng nối giải thuật với container nối thành phần khác với − Algorithm (các thuật toán) hàm phổ biến để làm việc với lưu trữ thêm, xóa, sửa, truy xuất, tìm kiếm, xếp Trong STL giải thuật biểu diễn hàm mẫu (Template function) Các hàm hàm thành viên lớp container Chúng hàm đứng Khái niệm STL dựa tách liệu hoạt động Dữ liệu quản lý lớp container hoạt động định nghĩa thuật tốn cấu hình Vịng lặp keo hai thành phần Thư viên STLđể cho thuật toán tương tác với container hình dưới: Bộ thư viện thực tồn cơng việc vào liệu (iostream), quản lý mảng (vector), thực hầu hết tính cấu trúc liệu (stack, queue, map, set ) Ngồi ra, STL cịn bao gồm thuật tốn bản: tìm min, max, tính tổng, xếp (với nhiều thuật toán khác nhau), thay phần tử, tìm kiếm (tìm kiếm thường tìm kiếm nhị phân), trộn Tồn tính nêu cung cấp dạng template nên việc lập trình ln thể tính khái qt hóa cao Thư viện STL hỗ trợ trình biên dịch hai môi trường WINDOWS lẫn UNIX, sử dụng thư viện xử lý thuận tiện cho việc chia mã nguồn Các chức thư viện chuẩn C++ khai báo namespace std; B Container Container (thùng chứa) khái niệm đối tượng lưu trữ đối tượng (giá trị) khác Đối tượng container cung cấp phương thức để truy cập thành phần (element) Container bao gồm nhiều lớp C++: lớp Vector, lớp danh sách (List) kiểu hàng đợi (Stack Queue), lớp tập hợp (Set) lớp ánh xạ (Map) STL có sẵn bảy loại container bản, ba loại container rút từ loại Ngoài tạo container riêng dựa loại container − Các container STL chia làm loại: + Container (Sequential container) bao gồm danh sách (list), vectơ (vector) hàng đợi hai đầu (deque) + Container lien kết (Asociative container) bao gồm ánh xạ (map), đa ánh xạ (multimap), tập hợp (set) đa tập hợp (multiset) I Container (Sequential container) Một container (sequencial container) lưu trữ tập hợp phần tử mà hình dung đường thẳng, phần tử liên kết với phần tử khác vị trí theo đường thẳng Mỗi phần tử (trừ phần tử cuối cùng) có phần tử xác định đứng trước đứng sau Một mảng C++ ví dụ container Vector Lớp mảng động vector có sẵn thư viện chuẩn STL C++ định nghĩa mảng động phần tử kiểu T − Vector có tính chất sau: + Khơng cần khai báo kích thước mảng, vector tự động cấp phát nhớ, co giãn kích thước vector chèn xóa liệu, bạn khơng phải quan tâm đến quản lý kích thước + Chúng ta sử dụng vector y mảng, truy nhập phần tử với tốn tử “[]” Việc truy cập ngẫu nhiên nhanh với vector + Vector cịn cho bạn biết số lượng phần tử mà bạn lưu + Vector có phương thức stack, tối ưu hóa với phép tốn phía (rear operations) + Hỗ trợ tất thao tác chèn, xóa, chép − Những toán tử so sánh định nghĩa cho vector: ==, = 1.1/ Cú pháp Để dùng vector bạn phải thêm header #include phải có using std::vector; Cú pháp vector đơn giản, ví dụ : vector v; // khởi tạo vector có kích thước ban đầu vector v(10); // khởi tạo size = 10 vector v(10, 2); //10 phần tử vector A khởi tạo Khai báo vector v có kiểu int Chú ý kiểu vector để dấu ngoặc nhọn “< >” Theo dõi ví dụ sau: #include #include using namespace std; int main() { vector V(3); //tạo vector số nguyên V[0] = 8; V[1] = 9; V[2] = 10; for (int i=0; i

Ngày đăng: 14/04/2015, 09:00

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan